개발일지 3주 차
기간: 2/26~2/27일
웹 스크랩핑(크롤링) 기초
1. 원하는 부분 오른쪽 클릭 후 검사
2. 원하는 부분 태그에서 오른쪽 클릭
3.Copy에서 Copy selector 복사
#old_content > table > tbody > tr:nth-child(2) > td.title > div > a
4. 영화 순위, 이름, 평점 가져오기
#old_content > table > tbody > tr:nth-child(2) > td.title > div > a
이 부분에서
#old_content > table > tbody > tr까지 공통부분이므로
movies = soup.select('#old_content > table > tbody > tr')을 넣어준다.
그 후 각각의 파트마다 알맞은 셀렉터들을 넣어준다.
여기서 rank에 ['alt']를 붙이는 이유는 rank라는 값에서
alt부분이 필요하기 때문이다.
5. 완성 코드
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://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=cur&date=20220227',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
movies = soup.select('#old_content > table > tbody > tr')
for movie in movies:
a_tag = movie.select_one('td.title > div > a')
if a_tag is not None:
rank = movie.select_one('td:nth-child(1) > img')['alt']
title = a_tag.text
star = movie.select_one('td.point').text
print(rank,title,star)
Pymongo로 DB 조작하기
기본 용어
크롤링한 데이터를 DB에 넣어보기
위에 코드에서 print를 지운 후
doc를 이용해 순위, 타이틀, 평점을 집어넣는다.
완성 코드
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://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=cur&date=20220227',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
moviesprac = soup.select('#old_content > table > tbody > tr')
for movie in moviesprac:
a_tag = movie.select_one('td.title > div > a')
if a_tag is not None:
rank = movie.select_one('td:nth-child(1) > img')['alt']
title = a_tag.text
star = movie.select_one('td.point').text
doc = {
'rank' : rank,
'title' : title,
'star' : star
}
db.moviesprac.insert_one(doc)
코드 삽입 후
오른쪽 마우스 클릭해서 Run을 하면
Robo 3T에 데이터가 저장된 것을 확인할 수 있다.
여기서 3주 차 개발일지를 마치겠습니다.
Week I learned 5주차 (0) | 2022.03.05 |
---|---|
Week I learned 4주차 (2) | 2022.03.04 |
Week I learned 2주차 (0) | 2022.02.26 |
Week I learned 1주차 (1) | 2022.02.23 |
댓글 영역