-2
특정 페이지를 긁을 때 "urllib.error.HTTPError : HTTP Error 403 : Forbidden"오류가 표시되고 hdr = {"User-Agent': 'Mozilla/5.0"}
과 같은 내용을 추가하는 것이 해결책입니다. 이.urllib.error.HTTPError : HTTP 오류 403 : 금지 됨
그러나 나는 긁어 모으려는 URL이 별도의 소스 파일에있을 때 작동하지 않을 수 있습니다. 어떻게/아래의 코드에 User-Agent를 추가 할 수 있습니까?
from bs4 import BeautifulSoup
import urllib.request as urllib2
import time
list_open = open("source-urls.txt")
read_list = list_open.read()
line_in_list = read_list.split("\n")
i = 0
for url in line_in_list:
soup = BeautifulSoup(urllib2.urlopen(url).read(), 'html.parser')
name = soup.find(attrs={'class': "name"})
description = soup.find(attrs={'class': "description"})
for text in description:
print(name.get_text(), ';', description.get_text())
# time.sleep(5)
i += 1
감사합니다 :)
'urllib' 문서를 읽으려고 한 적이 있습니까? 또는 ['requests'] (http://docs.python-requests.org/ko/master/)와 같이 좀 더 사용자 친화적 인 것을 사용하고 계십니까? – MattDMo
예, 그래도 작동하지 않습니다.'hdr = { "User-Agent ':'Mozilla/5.0"}'변수를 추가하고 수프 라인을'soup = BeautifulSoup (urllib2. urlopen (url, headers = hdr) .read(), 'html.parser')'파이썬은 헤더의 뜻밖의 어조를 제공합니다. 어떤 생각? 감사합니다 – Espen
당신은 내 코멘트를 읽지 않았다. ** 1. ** 질문하기 전에 [관련 문서] (https://docs.python.org/2/library/urllib2.html#urllib2.urlopen)를 읽으십시오.이 경우 함수에는'헤더가 없습니다. '매개 변수. ** 2. ** 내가 말했듯이 ([docs say] (https://docs.python.org/2/library/urllib2.html)), 대신에'requests'를 사용해야합니다. 요청이 std lib에없는 유일한 이유는 여전히 활성 개발 중이기 때문이며 관리자는 Python 릴리스 일정에 의존하기를 원하지 않습니다. 그걸 써. 너의 삶이 더 쉬워 질거야. – MattDMo