所以,我想用肯尼斯”优秀请求模块 。 同时试图使用摇摇晃晃这个问题的游离碱API 。
基本上,他们的API看起来像这样:
https://www.googleapis.com/freebase/v1/mqlread?query=...
作为查询条件,他们希望一个JSON对象,这里是一个将返回他们的国家和酒精的比例葡萄酒的列表 :
[{
"country": null,
"name": null,
"percentage_alcohol": null,
"percentage_alcohol>": 0,
"type": "/food/wine"
}]
当然,我们不得不逃离地狱的这个它传递给一个URL之前,所以实际的查询将是这样的:
fullurl = 'https://www.googleapis.com/freebase/v1/mqlread?query=%5B%7B%22percentage_alcohol%3E%22%3A+0%2C+%22country%22%3A+null%2C+%22type%22%3A+%22%2Ffood%2Fwine%22%2C+%22name%22%3A+null%2C+%22percentage_alcohol%22%3A+null%7D%5D'
现在,
r = requests.get(fullurl)
print r.status_code
>>> 400
因为该网站声称,它无法解析的查询。
r2 = urllib2.urlopen(fullurl)
print r2.getcode()
>>> 200
这里没有问题,我得到合理的回报。 有趣的是,
# This is the url of our requests.get request
print urllib2.urlopen(r.url).getcode()
>>> 200
为什么? 我使用该模块错了吗? 或者是在一个错误requests
?