웹개발 종합반 3주차 강의
본문 바로가기
항해 전/웹 개발 종합반

웹개발 종합반 3주차 강의

by 은돌1113 2021. 10. 19.

숙제

숙제 + 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

 

ㅡㅡ : 네이버 블로그

당신의 모든 기록을 담는 공간

blog.naver.com

깃허브
https://github.com/eundol0519/homework/blob/main/3%EC%A3%BC%EC%B0%A8

 

GitHub - eundol0519/homework: homework

homework. Contribute to eundol0519/homework development by creating an account on GitHub.

github.com


strip() : 양쪽 공백 제거
https://appia.tistory.com/234

 

파이썬[Python] 문자열에서 공백 제거하기(replace, lstrip, rstrip,strip)

파이썬[Python] 문자열에서 공백 제거하기(replace, lstrip, rstrip,strip) 이번 포스팅은 문자열에 관련된 이야기를 조금 할려고 합니다. 최근에 특정 통신 정보를 받아 오는 스크립트를 만들었습니다

appia.tistory.com

 

댓글