3주차 강의목록
3-1 3주차 설치
3-2 연습 겸 복습 - 스파르타피디아에 OpenAPI 붙여보기
3-3 파이썬 시작하기
3-4 파이썬 기보공부 (1)
3-5 파이썬 기보공부 (2)
3-6 파이썬 패키지 설치하기
3-7 패키지 사용해보기
3-8 웹스크래핑(크롤링) 기초
3-9 Quiz_웹스크래핑(크롤링) 연습
3-10 DB개괄
3-11 mongoDB 시작하기
3-12 mongoDB 연결하기
3-13 mongoDB로 DB조작하기
3-14 웹스크래핑 결과 이용하기
3-15 Quiz_웹스크래핑 결과 이용하기
3-16 3주차 끝 & 숙제 설명
배운 것 요약정리
- 파이썬(python) 기본 문법
# 변수
a = 10
b = a
# 리스트
list = ['사과', '바나나']
list.append('수박')
# 딕셔너리
dict = {'사과':10, '바나나':20}
# 함수
def sum(a, b):
print('더하는 함수')
return a+b
# 조건문
if a > 20:
print(a)
else:
print(b)
# 반복문
fruits = ['사과', '배', '수박']
for fruit in fruits:
print(fruit)
- 패키기( = 외부 라이브러리) : 모듈을 모아놓은 단위
- 가상머신(virtual machine) : 프로젝트 별로 패키지가 담기는 공간을 분리된 실행환경 → 파이썬에서 venv 폴더가 패키지를 보관하는 폴더이다.
- 크롤링
크롤링하기 위해서 python 코드에서 패키지로 requests와 bs4를 다운받아서 사용하였다. 이 패키지를 이용해서 다른 웹 페이지의 정보를 가져와서 원하는 형태로 데이터를 가공할 수 있었다.
# 크롤링 기본 코드
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get('https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20210829',headers=headers) # 네이버영화 랭킹 URL
soup = BeautifulSoup(data.text, 'html.parser')
# 문법
movies = soup.select('#old_content > table > tbody > tr')
for movie in movies:
title = movie.select_one('td.title > div > a')
rank = movie.select_one('td:nth-child(1) > img')
star = movie.select_one('td.point')
if title is not None:
print(rank['alt'], title.text, star.text)
- mongoDB
크롤링한 데이터를 데이터베이스 저장하기 위해서 사용한 데이터베이스 프로그램이다.
mongoDB는 noSQL이다.
구축한 mongoDB Altas를 pycharm과 연결하기 위해서 pymongo, dnspython 패키지를 설치한다.
# mongoDB 데이터 관리 기본 코드
from pymongo import MongoClient
import certifi
ca = certifi.where()
client = MongoClient('mongodb+srv://test:sparta@cluster0.e7kpc.mongodb.net/Cluster0?retryWrites=true&w=majority', tlsCAFile=ca)
db = client.dbsparta
# 데이터 넣기
doc = { # document 약자
'name':'Cassy',
'age':23
}
db.users.insert_one(doc)
db.users.insert_one({'name':'Cassy','age':23})
db.users.insert_one({'name':'Chris','age':30})
# 데이터 가져오기 1) 여러 개일 경우
all_users = list(db.users.find({},{'_id':False})) # {} -> 빈 조건
for user in all_users:
print(user)
# 데이터 가져오기 2) 한 개일 경우
user = db.users.find_one({'name':'Bob'})
print(user)
print(user['age'])
# 데이터 업데이트
db.users.update_one({'name':'Bob'},{'$set':{'age':19}}) # 첫번째 {}는 조건, 두번째 {}는 변경내용
user = db.users.find_one({'name':'Bob'})
print(user)
# 데이터 삭제
db.users.delete_one({'name':'Bob'})
느낀점
다른 웹 페이지의 데이터를 가져와서 필요한 부분만 이용하는 것을 해보았는데 재밌었다. '이게 다른 크롤링이구나...' 라고 생각했다. 크롤링한 데이터를 mongoDB에 넣고, 이 데이터를 다룰 수 있는게 재미있었다. 아직은 조금 헷갈리고 몇 일 복습 안하면 기억이 잘 나지 않아서 주석을 더 꼼꼼이 작성해야겠다고 느꼈다. 예전에 웹페이지 만들때, 이 내용들을 미리 알았더라면 좀 더 쉽게 웹페이지를 만들 수 있었을텐데... 아쉬움이 든다.
'스파르타 코딩 > [왕초보] 비개발자를 위한, 웹개발 종합반 (프로그래밍 실무, 풀스택)' 카테고리의 다른 글
[4주차] 개발일지 (0) | 2022.07.12 |
---|---|
[4주차] 관련 자료들 (0) | 2022.07.12 |
[3주차] 관련 자료들 (0) | 2022.07.08 |
[2주차] 개발일지 (0) | 2022.07.08 |
[2주차] 관련 자료들 (0) | 2022.07.03 |