我正在尝试使用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')]
作为非网络开发者,我不清楚如何解决这个问题或弄清楚障碍在哪里。
答案 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