我正在尝试使用Twitter的API v1.1和urllib2库来搜索包含特定用户推文的某些关键字的推文。我试过的代码是:
#!/usr/bin/python
import json
import sys
import urllib2
import os
#input twitter handle
handle = sys.argv[1]
sturl="https://api.twitter.com/1.1/search/tweets.json?q=immigrant%20OR%20illegal%20from%3A"+handle+"&src=typd";
url = urllib2.urlopen(sturl)
#convert the data and load it into json
data = json.load(url)
print len(data), "tweets"
这会将所需的用户句柄作为输入,并通过此帐户搜索推文,其中包含单词" immigrant"或者"非法"并打印此类推文的数量。我得到的错误是:
File "tweet_search.py", line 16, in <module>
url = urllib2.urlopen(sturl)
File "/Users/David/anaconda/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/Users/David/anaconda/lib/python2.7/urllib2.py", line 437, in open
response = meth(req, response)
File "/Users/David/anaconda/lib/python2.7/urllib2.py", line 550, in http_response
'http', request, response, code, msg, hdrs)
File "/Users/David/anaconda/lib/python2.7/urllib2.py", line 475, in error
return self._call_chain(*args)
File "/Users/David/anaconda/lib/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File "/Users/David/anaconda/lib/python2.7/urllib2.py", line 558, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 400: Bad Request
我是否错误地使用了查询格式?我试过浏览API文档,但我找不到通过twitter句柄和关键字搜索的查询选项。
答案 0 :(得分:0)
我认为你的网址搞砸了 访问
https://api.twitter.com/1.1/search/tweets.json?q=immigrant%20OR%20illegal%20from%3Asoccer&src=typd
这是你的手柄足球时的网址。 你应该得到这个
{"errors":[{"code":215,"message":"Bad Authentication data."}]}
您应该查看URL应该是多少。 你绝对应该使用API密钥或其他一些auth东西。