Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3,urlopen-HTTP错误403:禁止_Python - Fatal编程技术网

Python3,urlopen-HTTP错误403:禁止

Python3,urlopen-HTTP错误403:禁止,python,Python,我试图自动下载谷歌图片搜索中出现的第一张图片,但我无法读取网站源代码,出现错误(“HTTP错误403:禁止”)。 有什么想法吗?谢谢你的帮助 这是我的密码: from urllib.request import urlopen from bs4 import BeautifulSoup word = 'house' r = urlopen('https://www.google.pl/search?&dcr=0&tbm=isch&q='+word) data = r.r

我试图自动下载谷歌图片搜索中出现的第一张图片,但我无法读取网站源代码,出现错误(“HTTP错误403:禁止”)。 有什么想法吗?谢谢你的帮助

这是我的密码:

from urllib.request import urlopen
from bs4 import BeautifulSoup

word = 'house'
r = urlopen('https://www.google.pl/search?&dcr=0&tbm=isch&q='+word)
data = r.read()

显然,您必须传递
headers
参数,因为网站阻止您,认为您是请求数据的机器人。我在这里找到了一个这样做的例子

另外,
urlopen
对象不支持
headers
参数,因此我不得不使用
Request
对象

from urllib.request import urlopen, Request
from bs4 import BeautifulSoup

word = 'house'
r = Request('https://www.google.pl/search?&dcr=0&tbm=isch&q='+word, headers={'User-Agent': 'Mozilla/5.0'})
response = urlopen(r).read()

也许谷歌不喜欢由
urlopen()
可能重复的@Wojciech发送的默认用户代理。请看我的答案。谢谢@Alex,它解决了我的问题!现在我可以阅读网站来源:)@Wojciech你能投票接受我的答案吗?