python/beatifulsoup 뷰티풀스프
BeautifulSoup(bs4) 미세먼지/네이버 영화순위 크롤링
반응형
#07. 미세먼지 url로 정보 가져오기
import requests # requests 라이브러리 설치 필요
import requests # requests 라이브러리 설치 필요
r = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
rjson = r.json()
# print(rjson)
gus = rjson['RealtimeCityAir']['row']
for gu in gus:
gu_name = gu['MSRSTE_NM']
gu_mise = gu['IDEX_MVL']
if (gu_mise < 120):
print(gu_name, gu_mise)
#08. 네이버 영화 순위 가져오기
1. 타이틀 이름 가져오는 연습
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.nhn?sel=pnt&date=20200303', headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
# 코딩 시작
# 한개만 가져올 때 .select_one / 여러개는 .select
title = soup.select_one('#old_content > table > tbody > tr:nth-child(2) > td.title > div > a')
# print((title).text) #// tag 의 텍스트만 가져옴 -> 결과: 그린북
print(title['href']) # // tag의 속성을 가져옴 ->결과: /movie/bi/mi/basic.nhn?code=171539
# old_content > table > tbody > tr:nth-child(2)
# old_content > table > tbody > tr
trs = soup.select('#old_content > table > tbody > tr')
for tr in trs:
# print(tr)
a_tag = tr.select_one('td.title > div > a')
# print(a_tag)
# print(a_tag.text) # .text 시 해당 리스트에 none 값이 있으면 에러남
if a_tag is not None:
title = a_tag.text
print(title)
2. 순위와 평점을 가져오자 -완성본
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.nhn?sel=pnt&date=20200303', headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
# 코딩 시작
# 한개만 가져올 때 .select_one / 여러개는 .select
title = soup.select_one('#old_content > table > tbody > tr:nth-child(2) > td.title > div > a')
# print((title).text) #// tag 의 텍스트만 가져옴 -> 결과: 그린북
print(title['href']) # // tag의 속성을 가져옴 ->결과: /movie/bi/mi/basic.nhn?code=171539
# old_content > table > tbody > tr:nth-child(2)
# old_content > table > tbody > tr
trs = soup.select('#old_content > table > tbody > tr')
for tr in trs:
# print(tr)
a_tag = tr.select_one('td.title > div > a')
# print(a_tag)
# print(a_tag.text) # .text 시 해당 리스트에 none 값이 있으면 에러남
if a_tag is not None:
rank = tr.select_one('td:nth-child(1) > img')['alt']
title = a_tag.text
star = tr.select_one(' td.point').text
print(rank , title, star)
반응형
'python > beatifulsoup 뷰티풀스프' 카테고리의 다른 글
[python]파이썬 크롤링, mongodb, html, flask, bs4 활용 (0) | 2021.03.29 |
---|
댓글