파이썬 문법 기초와 내용이 같았다
파이썬에서 모듈을 모아놓은 단위 패키지
패키지를 묶은게 라이브러리
가상 환경 (virtual environment)
프로젝트별로 패키지들을 담는 곳
같은 시스템에서 실행되는 다른 파이썬 응용 프로그램의 동작에 영향을 주지 않기 위해 만든 격리된 실행 환경
설치후 import 해서 사용한다
패키지 별로 사용방법이 다 다르다
requests 사용법
data = requests.get(url)
bs4 사용법
헤더 = {'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(url, headers=헤더)
해더를 넣는 이유는 컴퓨터가 아니라 사용자처럼 보이기 위함
선택자를 사용하는 방법 (copy selector)
soup.select('태그명')
soup.select('.클래스명')
soup.select('#아이디명')
soup.select('상위태그명 > 하위태그명 > 하위태그명')
soup.select('상위태그명.클래스명 > 하위태그명.클래스명')
태그와 속성값으로 찾는 방법
soup.select('태그명[속성="값"]')
한 개만 가져오고 싶은 경우
soup.select_one('위와 동일')
많은 양을 크롤링할 경우
먼저 soup.select로 리스트로 가져온 후
반복문을 돌리고 soup.select_one로 원하는 부분을 가져온다
DB쓰는 이유
잘 정리하고 잘 찾기 위해서
DB는 인덱스가 있어서 잘 정리되어 있다
DB의 두가지 종류
ROBMS(SQL)
엑셀처럼 정해진 칸에 저장하는 DB
행/열의 생김새가 정해진 엑셀에 데이터를 저장하는 것과 유사합니다. 데이터 50만 개가 적재된 상태에서, 갑자기 중간에 열을 하나 더하기는 어려울 것입니다. 그러나, 정형화되어 있는 만큼, 데이터의 일관성이나 / 분석에 용이할 수 있습니다.
NO-SQL
자유로운 형태로 저장하는 DB
딕셔너리 형태로 데이터를 저장해두는 DB입니다. 고로 데이터 하나 하나 마다 같은 값들을 가질 필요가 없게 됩니다. 자유로운 형태의 데이터 적재에 유리한 대신, 일관성이 부족할 수 있습니다.
클러스터까지 생성 후
파이썬과 연동
파이썬에 pymongo와 dnspython 설치 후
import certifi
from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@cluster0.mr6mv.mongodb.net/Cluster0?retryWrites=true&w=majority', tlsCAFile=certifi.where())
db = client.dbsparta
doc = {
'name':'bob',
'age':27
}
db.users.insert_one(doc)
처음 실행 할때 안됐다가 tlsCAFile=certifi.where()을 달아주니까 해결됐다
이렇게 하면 데이터베이스에 저장이 된다
조작법
insert_one 작성
find 읽기
list(db.users.find({},{'_id':False})) //아이디제외
find_one 하나 읽기
db.users.find_one({'name':'bobby'})
update_one 수정
//db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
delete_one 삭제
users는 저장할 위치
3주차는 여기까지