▶현재 시간 : 2022년 10월 18일 16:07 P.M.
웹스크래핑(크롤링) 연습 중이다. 좀 어렵긴 한데 새로운 내용 배우는 거라 재밌다.
▶ 웹스크래핑(크롤링) 연습하기 - find, update
- 영화제목 '가버나움'의 평점을 가져오기
target_movie = db.movies.find_one({'title':'가버나움'})
print(target_movie['star'])
- '가버나움'의 평점과 같은 평점의 영화 제목들을 가져오기
target_movie = db.movies.find_one({'title':'가버나움'})
target_star = target_movie['star']
movies = list(db.movies.find({'star':target_star}))
for movie in movies:
print(movie['title'])
- '가버나움' 영화의 평점을 0으로 만들기
db.movies.update_one({'title':'가버나움'},{'$set':{'star':'0'}})
▶웹스크래핑(크롤링) 연습하기 - 지니뮤직의 1~50위 곡( 순위 / 곡 제목 / 가수)
<힌트>
지니뮤직 사이트 : https://www.genie.co.kr/chart/top200?ditc=M&rtm=N&ymd=20210701
출력 할 때는 print(rank, title, artist) 사용.
앞에서 두 글자만 끊기! text[0:2] 사용.
순위와 곡제목이 깔끔하게 나오지 않음. 옆에 여백이 있다던가, 다른 글씨도 나온다던가.. 파이썬 내장 함수인 strip() 사용.
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://www.genie.co.kr/chart/top200?ditc=M&rtm=N&ymd=20210701',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[0:2].strip()
title =tr.select_one('td.info > a.title.ellipsis').text.strip()
artist =tr.select_one('td.info > a.artist.ellipsis').text
print(rank,title,artist)
'Web development (3)' 카테고리의 다른 글
웹개발 3주차 (4) - DB (0) | 2022.10.18 |
---|---|
웹개발 3주차 (3) - 웹스크래핑(크롤링) 기초 (0) | 2022.10.18 |
웹개발 3주차 (2) - requests (0) | 2022.10.18 |
웹개발 3주차 (1) - Python기초 문법 (0) | 2022.10.18 |