Python的urllib2在某些网站上不起作用

Bin*_*V A 2 python urllib urllib2

我发现你无法使用Python的urllib2(或urllib)从一些网站上读取.一个例子...

urllib2.urlopen("http://www.dafont.com/").read()
# Returns ''
Run Code Online (Sandbox Code Playgroud)

当您使用浏览器访问该站点时,这些站点可以工作.我甚至可以使用PHP抓它们(没有尝试其他语言).我见过其他网站存在同样的问题 - 但目前还记不起网址.

我的问题是......

  1. 这个问题的原因是什么?
  2. 任何解决方法?

liv*_*ter 6

我相信它会被User-Agent阻止.您可以使用以下示例代码更改User-Agent:

USERAGENT = 'something'
HEADERS = {'User-Agent': USERAGENT}

req = urllib2.Request(URL_HERE, headers=HEADERS)
f = urllib2.urlopen(req)
s = f.read()
f.close()
Run Code Online (Sandbox Code Playgroud)

  • 这些无能为力的网站似乎意图强迫每个人使用通用的UA,最终打破每个人的标题. (2认同)