使用Python和Twitter API无法获得适当数量的推文

时间:2013-04-08 16:19:27

标签: python twitter

我正在尝试创建一个简单的Twitter Bot,如果他们的推文包含某个标签,则转发用户

所以对于我的搜索网址,我有以下内容:     http://search.twitter.com/search.json?q=address&count=1

但每当我运行我的程序时,我只收到1条推文及其信息。我很困惑为什么我只得到1条推文而不是10条。即使我更改了“count”参数的值,我也会得到1条推文。

如果我更改搜索网址以将“hashtags”替换为“q”,我会收到一堆错误:     http://search.twitter.com/search.json?hashtags=151milford&count=10

上面一行给出了以下错误

File "C:\Users\Documents\pythonbot.py", line 16, in <module>
    o = urllib2.urlopen(url) #open the url
  File "C:\PYTHON27\LIB\urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "C:\PYTHON27\LIB\urllib2.py", line 406, in open
    response = meth(req, response)
  File "C:\PYTHON27\LIB\urllib2.py", line 519, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\PYTHON27\LIB\urllib2.py", line 444, in error
    return self._call_chain(*args)
  File "C:\PYTHON27\LIB\urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "C:\PYTHON27\LIB\urllib2.py", line 527, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 403: Forbidden

我仍然在尝试学习API,所以任何提示都会很棒

3 个答案:

答案 0 :(得分:0)

您确定有更多推文与该查询相关吗?

如果您使用的话,请在浏览器中使用该网址:

http://search.twitter.com/search.json?q=trending&count=10

你会得到10个结果。

Twitter的API只会为您提供相对较新的推文,因此如果最近没有与您的查询匹配的推文,您将什么也得不到。

在这里https://dev.twitter.com/docs/api/1.1查看支持哪些参数。

您获得的错误是由于没有“hashtags”参数。

答案 1 :(得分:0)

您使用的参数计数不正确。查看documentation again

查看此网址,该网址会返回5个项目:

https://search.twitter.com/search.json?q=stackoverflow&rpp=5

您可以使用参数rpp来控制结果数每页,使用参数page来控制页面偏移量

另请转到较新的v1.1 API。你会在@pcalcao post找到这个链接。

答案 2 :(得分:0)

我想我找到了为什么我的搜索没有找到所有内容。显然Twitter没有为他们的所有推文编制索引,所以这就是为什么我没有在我的搜索结果中获得所有内容。

https://support.twitter.com/articles/66018#