Python urllib2 web抓取401错误但可在浏览器

时间:2015-05-29 14:00:59

标签: python urllib2

我正在尝试使用Python来抓取这个和类似的页面:

url = "http://www.nature.com/nature/journal/v521/n7553/full/nature14410.html"

虽然我可以使用浏览器导航到此页面,但我在使用urllib2时遇到401身份验证错误,并且无法找出原因。 要清楚,我明白这篇文章是付费墙的背后,但我只对标题,作者,数量,参考资料等感兴趣,这些都是免费提供的,我显然不会有订阅。

from urllib2 import urlopen
urlopen("http://www.nature.com/nature/journal/v521/n7553/full/nature14410.html")

我尝试更改用户代理,认为该网站以某种方式检测到我没有使用浏览器

request = urllib2.Request(url)
opener = urllib2.build_opener()
opener.add_headers = [('User-agent', 'Mozilla/5.0')]

作为非网络开发者,我不清楚如何解决这个问题或弄清楚障碍在哪里。

1 个答案:

答案 0 :(得分:1)

如果我在Chrome中使用开发人员工具,即使在浏览器中,特定页面也会显示Order table Order 1 2 3 4 5 6 Dept table Dept Person A P1 A P2 B P3 B P4 B P5 C P6 C P7 C P8 C P9 Output expected Dept Person Order A P1 1 A P2 2 A P1 3 A P2 4 A P1 5 A P2 6 B P3 1 B P4 2 B P5 3 B P3 4 B P4 5 B P5 6 C P6 1 C P7 2 C P8 3 C P9 4 C P6 5 C P7 6 响应。不幸的是,401 Unauthorized总是在错误响应上引发异常,并且使得查看内容变得更加困难。

更复杂的情况是urllib2似乎没有设置nature.com标头以表明它已经压缩了响应,即使它有。

尝试这样的事情:

Content-Encoding