使用twitter api v1.1通过twitter句柄和关键字进行搜索

时间:2016-04-14 03:53:01

标签: python json twitter urllib2

我正在尝试使用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句柄和关键字搜索的查询选项。

1 个答案:

答案 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东西。