카테고리 없음

BeautifulSoup

세상 밖으로 나온 무 2022. 7. 15. 01:16
`import pandas as pd
from urllib.request import urlopen
from bs4 import BeautifulSoup
import mplfinance as mpf

url = 'https://finance.naver.com/item/sise_day.nhn?code=068270&page=1'
with urlopen(url) as doc:
html = BeautifulSoup(doc, 'lxml')
pgrr = html.find('td', class_='pgRR')
s = str(pgrr.a['href']).split('=')
last_page = s[-1] `

을 실행하면 html이 없는 페이지를 가져와서 'NoneType' object has no attribute 'a'이 에러가 뜹니다 이런 경우는 어떤식으로 진행해야될까요?

 

2021년 1월 7일 저녁부터 네이버 금융에서 웹 브라우저가 아니면 스크레이핑을 차단하기 시작했기 때문에
urlopen()을 사용하면 빈 HTML 페이지만 가져와서 a 태그를 찾을 수 없습니다.

따라서, 아래처럼 requests 라이브러리를 사용하여 웹 브라우저 정보를 보내도록 수정하셔야 합니다.

import requests
url = "https://finance.naver.com/item/sise_day.nhn?code=068270&page=1"
html = BeautifulSoup(requests.get(url, headers={'User-agent': 'Mozilla/5.0'}).text, "lxml")