[수업 목표] 1. 파이썬 기초 문법을 알고 있다.2. 원하는 페이지를 클롤링하는 것이 3. pymongo를 통해 mongoDB를 제어할 수 있다.
[목차] (설치, 복습, 안내, 퀴즈, 숙제 제외) 05. 파이썬 기초공부 06. 파이썬 패키지 설치 07. 패키지 써보기 08. 웹스크랩(클로링) 기초 11. DB 개괄 12. pymongo로 DB 조작하기 13. 웹스크랩 결과 저장하기
웹 스크래핑 DB 연습 숙제로 만든 것.
05.파이슨 기초공부 06.파이슨 패키지 설치 PyCharm 메뉴의 File > Settings > Project: (하고 있는 프로젝트) > Project Interprter > + 버튼


07. 패키지 사용해보기 importrequests #requests 라이브러리 설치 필요
r=requests.get(“API 주소”) rjson=r.json( )
print(rjson[‘~’][‘~’][~][~’])
08.웹스크랩(클로링) 기초 ‘bs4’ 검색해 beautifulsoup4 패키지 추가설치! 클로링 기본셋팅 importrequestsfrombs4 importBeautifulSoup
타겟 URL을 읽고 HTML을 수령하여 headers={‘User-Agent’: ‘Mozilla/5.0(Windows NT 10.0; Win 64;x64) Apple WebKit/537.36(KHTML, likeGecko) Chrome/73.0.3683.86 Safari/537.36’} data=requests.get(“크롤링할 웹페이지 주소”, headers=headers)
HTML을 Beautiful Soup라는 라이브러리를 활용하여 검색하기 쉬운 상태로 만드는 #soup라는 변수에 “퍼싱하기 쉬워진 html”가 포함된 상태가 되는 soup=Beautiful Soup(data.text, “html.parser”)
코딩을 통해 필요한 부분을 추출하면 된다.크롬 개발자 도구 참고! 해당 웹페이지에서 필요한 부분 우클릭 – 검사. 오른쪽 클릭-copy-copy selector 하고 선택자를 가져온다.
beautifulsoup 내 select에 미리 정의된 다양한 방법 soup.select(“태그 이름”) soup.select(“.클래스 이름”) soup.select(“#ID 이름”) soup.select(“상위 태그 이름> 하위 태그 이름”) ↑ 검사 > 해당 요소 오른쪽 클릭 > Coppyselector 단 브라우저에서 검사가 들어가는 태그 순서와 파이톤 코드가 연결되었을 때 나오는 순서가 다를 수 있습니다! 그럴 때는 ↓ #태그와 속성값으로 찾는 경우 soup.select (‘태그명 [속성=”값”]’) # 하나만 가져오고 싶은 경우 soup.select_one (‘위와 같음”)
태그 안의 텍스트를 찍고 싶을 때는 → 태그.text 태그 중의 속성을 찍고 싶을 때는 → 태그.[속성]] 여백이나 문자를 없앨 때는 → 태그.text.strip( ) 텍스트 전부터 n개만 → 태그.text[0:n]
11. DB 개괄 Database의 큰 두 가지
RDBMS(SQL): 행/열이 정해진 데이터. 데이터의 일관성 및 분석에 용이함. MS-SQL, My-SQL: 딕셔너리 형태. 자유로운 형태의 데이터 적재에 유리함. MongoDB 등
12. pymongo에서 DB 조작하는 ‘pymongo’를 검색하여 mongoDB 프로그램을 조작하는 라이브러리 패키지 추가 설치! pymongo 기본코드 frompymongoimportMongo Client #파이몬고를 씁니다. (패키지 설치) cient=Mongo Client(‘localhost’, 27017), #mongoDB는 27017포트로 돌아갑니다.db=client.dbsparta #dbsparta라는 이름의 db에 연결합니다. 없으면 만들어서 접속합니다. pymongo 사용법. insert / find / update / delete 코드 요약 # 저장 – 예 doc= {‘name’: ‘bobby’, ‘age’: 21}db.users.insert_one(doc)
하나 검색 – 예 user=db.users.find_one({‘name’:’bobby’}) #복수 검색 – 예(_id값은 제외하고 출력)same_ages=list(db.users.find({‘age’: 21}, {‘_id’: False}))
변경 – 생김새 db.users.update_one (찾는 조건, {‘$set’: 어떻게 바꿀까}) # 변경 – 예 – 오타가 많으니 이 줄을 복사해서 쓰세요! db.users.update_one ({‘name’: ‘bobby’}, {‘$set’: {‘age’: 19})
삭제 – 예시 db.users.delete_one({‘name’:’bobby’})
13. 웹스크랩 결과 저장할 for문을 이용하여 웹스크랩 데이터를 추출하고 DB에 insert 하고…
CM…특별히 쓰는 소감없음…이번 파이썬은 디톱이 아니라 노트북으로 해 봤다는 TMI