所以我试图使用一个API(http://twittercounter.com/pages/api)从网络上获取一些数据。通过浏览器直接使用我的API密钥时,我得到了所需的结果。但是在python中使用requests.get()函数时,我得到一个错误,这里给出了回溯。
代码:
>>> import requests
>>> r = requests.get('https://api.twittercounter.com/?apikey=XXXX&twitter_id=57947109')
回溯:
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/requests/api.py", line 55, in get
return request('get', url, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/api.py", line 44, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 382, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 485, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 372, in send
raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.twittercounter.com', port=443): Max retries exceeded with url: /?apikey=XXXX&twitter_id=57947109 (Caused by <class 'socket.error'>: [Errno 111] Connection refused)
我用这把钥匙接了大约10次电话,费用限额是100英镑,所以我确信我没有超过限额。有人能帮忙吗。我对请求和http几乎一无所知。
编辑:试图在请求头中设置浏览器代理
我试图更改浏览器代理,但仍然不起作用
>>> headers = {
... 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0'}
>>> url = 'https://api.twittercounter.com/?apikey=09792d72d848c55a5b6b9a1bf3bb225a&twitter_id=57947109'
>>> response = requests.get(url, headers=headers)
我得到了和上次一样的回溯。
虽然我自己无法解决这个问题,但我找到了一个解决方法,在这个方法中,我不使用请求,而是使用
httplib
,然后使用ast
模块。我使用的代码是:现在,b是一本字典,里面有我要找的任何数据。不过,如果有人能告诉我这个错误的正确解决方案,那将是非常有用的。
这种方法对我很有效:
相关问题 更多 >
编程相关推荐