Python的urllib2在某些网站上不起作用
问题内容:
我发现您无法使用Python的urllib2(或urllib)从某些站点读取内容。一个例子…
urllib2.urlopen("http://www.dafont.com/").read()
# Returns ''
当您使用浏览器访问站点时,这些站点将起作用。我什至可以使用PHP抓取它们(不要尝试其他语言)。我看过其他网站也遇到过同样的问题-但目前无法记住该网址。
我的问题是…
- 此问题的原因是什么?
- 任何解决方法?
问题答案:
我相信它会被用户代理阻止。您可以使用以下示例代码更改User-Agent:
USERAGENT = 'something'
HEADERS = {'User-Agent': USERAGENT}
req = urllib2.Request(URL_HERE, headers=HEADERS)
f = urllib2.urlopen(req)
s = f.read()
f.close()