숙제
숙제 + DB
한번 더 연습
★ data = request.get('url', headers=headers)에 url을 바꿔줘야 한다.
웹 사이트에서 오른쪽 클릭해서 검사를 누른다.
크롤링 할 정보가 담긴 tr을 눌러서 오른쪽 클릭 후 copy -> copy selector를 한다.
python 파일에 복사 붙여넣기 하고 trs에 겹치는 부분까지 select를 사용해서 설정한다.
각각의 정보들은 같은 방식으로 copy selector 해서 trs에 설정한 뒷부분을 따로 복사한 후
반복문을 사용해서 복사 해둔 값들을 붙여 넣어서 trs 안에 있는 정보 값들을 select_one 해준다.
import requests from bs4 import BeautifulSoup from pymongo import MongoClient client = MongoClient('localhost', 27017) db = client.dbsparta 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://www.genie.co.kr/chart/top200',headers=headers) soup = BeautifulSoup(data.text, 'html.parser') trs = soup.select("#body-content > div.newest-list > div > table > tbody > tr") for tr in trs: rank = tr.select_one("td.number").text.split(" ")[0].strip() image = tr.select_one("td:nth-child(3) > a > img")['src'] title = tr.select_one("td.info > a.title.ellipsis").text.strip() singer = tr.select_one("td.info > a.artist.ellipsis").text print(rank, image, title, singer) doc = { 'rank' : rank, 'image' : image, 'title' : title, 'singer' : singer } db.musics.insert_one(doc)
db에 넣을 때는 doc이라는 딕셔너리를 만들어 주고 db에 musics라는 콜렉션에 삽입한다.
print 했을 때 모습
mongoDB에 삽입된 모습
회고록
크롤링이랑 MongoDB 부분이 처음 접하는 부분이다 보니 여러 번 다시 봐도 이해를 못하고 있었는 데
숙제를 하면서 크롤링을 할 때 어떻게 전략을 짜야 하는 지 다시 한 번 더 생각하게 되었고
잘 정리 해놓고 프로젝트 할 때 쓰면 좋을 것 같습니다.
2021.10.19 공부 내용 정리
https://blog.naver.com/eundol0519/222541794281
깃허브
https://github.com/eundol0519/homework/blob/main/3%EC%A3%BC%EC%B0%A8
strip() : 양쪽 공백 제거
https://appia.tistory.com/234
'항해 전 > 웹 개발 종합반' 카테고리의 다른 글
웹개발 종합반 수료 회고록 (0) | 2021.10.21 |
---|---|
웹개발 종합반 5주차 강의 1차 시도 (0) | 2021.10.20 |
웹개발 종합반 4주차 강의 (0) | 2021.10.20 |
웹개발 종합반 2주차 강의 (0) | 2021.10.19 |
웹개발 종합반 1주차 강의 (0) | 2021.10.18 |
댓글