Python urllib.error.HTTPError:HTTP错误403:禁止
我得到了错误urllib.error.HTTPError:HTTP错误403:在刮取某些页面时被禁止,并且理解将类似hdr={User Agent':'Mozilla/5.0}的内容添加到标头是解决此问题的方法 然而,当我试图刮取的URL位于单独的源文件中时,我无法使其工作。如何/在何处将用户代理添加到下面的代码Python urllib.error.HTTPError:HTTP错误403:禁止,python,http,urllib,Python,Http,Urllib,我得到了错误urllib.error.HTTPError:HTTP错误403:在刮取某些页面时被禁止,并且理解将类似hdr={User Agent':'Mozilla/5.0}的内容添加到标头是解决此问题的方法 然而,当我试图刮取的URL位于单独的源文件中时,我无法使其工作。如何/在何处将用户代理添加到下面的代码 from bs4 import BeautifulSoup import urllib.request as urllib2 import time list_open = open
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文档吗?或者使用一些更人性化的东西,比如?是的,但我还是不能让它工作。。如果我添加变量hdr={User Agent':'Mozilla/5.0},并将soup行更改为soup=BeautifulSoupurllib2.urlopenurl,headers=hdr.read,'html.parser'Python会在headers单词上给我一个意外的冲击。有什么想法吗?谢谢你没有读我的评论。1.在提问之前请阅读-在本例中,函数没有headers参数。2.正如我所说的,你应该使用请求来代替。请求不在std库中的唯一原因是,它仍在积极开发中,并且维护人员不希望依赖于Python发布计划。使用它。你的生活会更轻松。我通读了文档,但没有完全抓住要点。编程不是我最擅长的,但我还在学习。谢谢看起来像
import requests
hdrs = {'User-Agent': 'Mozilla / 5.0 (X11 Linux x86_64) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 52.0.2743.116 Safari / 537.36'}
for url in line_in_list:
resp = requests.get(url, headers=hdrs)
soup = BeautifulSoup(resp.content, '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