我试图使用Python中的请求库来抓取this JSON file(实际上是一系列类似的文件,但我离题了)。该文件可以通过浏览器轻松访问,我可以使用curl下载它没有任何问题。但是当我尝试使用请求下载它时,我收到403错误:
>>> import requests
>>> r = requests.get("http://www.canistream.it/services/search?movieName=The%20Wizard%20of%20Oz")
>>> r.content
'<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body bgcolor="white">\r\n<center><h1>403 Forbidden</h1></center>\r\n<hr><center>nginx/0.7.62</center>\r\n</body>\r\n</html>\r\n'
如果我尝试对urllib2做同样的事情,它似乎有效:
>>> import urllib2
>>> r = urllib2.urlopen("http://www.canistream.it/services/search?movieName=The%20Wizard%20of%20Oz")
>>> print r.read(100)
[{"actors":"Judy Garland, Frank Morgan, Ray Bolger","year":1939,"description":"","title":"The Wizard
现在,我可以在urllib2中重写应用程序并解决问题,但如果我能提供帮助,我更愿意处理请求,而且我很好奇为什么会这样做?回应的差异。任何人都有想法在这里发生了什么?