我正在尝试使用下面的脚本从 FlightRadar24 获取数据,基于这个答案 https://stackoverflow.com/a/526695/3904031来处理cookies。当我当前在浏览器中输入该 url 时,我会得到一个不错的长 json 或字典,其中包括纬度/经度/替代更新列表。但是当我尝试下面的代码时,我收到下面列出的错误消息。
我需要做什么才能成功将 json 读取到 python 中?
NOTE:该链接可能会在一两周内停止工作 - 他们不会永远提供数据。
import urllib2
import cookielib
jar = cookielib.FileCookieJar("cookies")
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
url = "http://lhr.data.fr24.com/_external/planedata_json.1.3.php?f=72c5ef5"
response = opener.open(url)
print response.headers
print "Got page"
print "Currently have %d cookies" % len(jar)
print jar
回溯(最近一次调用最后一次):
文件“[mypath]/test v00.py”,第 8 行,位于
响应 = opener.open(链接)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 410 行,打开
响应=方法(请求,响应)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 523 行,http_response
'http'、请求、响应、代码、消息、hdrs)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 448 行,错误
返回 self._call_chain(*args)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 382 行,在 _call_chain 中
结果 = func(*args)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 531 行,位于 http_error_default
引发HTTPError(req.get_full_url(),代码,msg,hdrs,fp)
HTTPError:HTTP 错误 403:禁止
我不确定您需要 cookie 的用途,但问题是网络服务器阻止访问请求标头中 urllib 发送的用户代理(类似于 -'Python-urllib/2.7'
或者) 。
您应该将有效的浏览器用户代理添加到标头以获取正确的数据。例子 -
import urllib2
url = "http://lhr.data.fr24.com/_external/planedata_json.1.3.php?f=72c5ef5"
req = urllib2.Request(url, headers={"Connection":"keep-alive", "User-Agent":"Mozilla/5.0"})
response = urllib2.urlopen(req)
jsondata = response.read()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)