我正在编写需要联系此在线JSON文件的代码,查询数据并返回搜索结果。
我尝试了以下代码:
adsb_data = urllib2.urlopen('http://website.com')
这将抛出 urllib2.HTTPError:HTTP错误403:禁止
所以显然我不是最好的方式。 打开JSON页面,抓取它并显示结果的最佳方法是什么?我觉得有更优雅和pythonic的方式来做到这一点。
答案 0 :(得分:2)
看起来该特定服务器阻止了Python的用户代理。这应该适合你:
url = "http://public-api.adsbexchange.com/VirtualRadar/AircraftList.json"
dummy_ua = "Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11"
request = urllib2.Request(url, headers={'User-Agent' : dummy_ua})
urllib2.urlopen(request).read()
答案 1 :(得分:0)
所有好的答案!谢谢大家的意见。
我使用requests
代替urllib2
修复了此问题。
以下是我的请求:
adsb_data = http_request('http://public-api.adsbexchange.com/VirtualRadar/AircraftList.json', 'GET')
从那里,我创建了一个列表并解析出我想要的数据。