如何获取一周以上的tweet(使用tweepy或其他python库)

如何获取一周以上的tweet(使用tweepy或其他python库),python,twitter,tweepy,Python,Twitter,Tweepy,我一直想弄明白这一点,但这是一个非常令人沮丧的问题。我正在尝试使用Tweepy获取带有特定标签(大量推文)的推文。但这不会超过一周。我至少要回到两年前的几个月。这可能吗?如果可能,怎么可能 这是我的代码,仅供核对 import tweepy import csv consumer_key = '####' consumer_secret = '####' access_token = '####' access_token_secret = '####' auth = tweepy.OAut

我一直想弄明白这一点,但这是一个非常令人沮丧的问题。我正在尝试使用Tweepy获取带有特定标签(大量推文)的推文。但这不会超过一周。我至少要回到两年前的几个月。这可能吗?如果可能,怎么可能

这是我的代码,仅供核对

import tweepy
import csv

consumer_key = '####'
consumer_secret = '####'
access_token = '####'
access_token_secret = '####'

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

# Open/Create a file to append data
csvFile = open('tweets.csv', 'a')
#Use csv Writer
csvWriter = csv.writer(csvFile)


for tweet in tweepy.Cursor(api.search,q="#ps4",count=100,\
                           lang="en",\
                           since_id=2014-06-12).items():
    print tweet.created_at, tweet.text
    csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8')])
使用参数“自”和“直到”调整您的时间范围。您当前正在使用的是与twitter id值(而不是日期)相对应的自_id:


你不能使用twitter搜索API来收集两年前的推文。根据文件:

还要注意,twitter.com上的搜索结果可能会返回历史结果,而搜索API通常只提供过去一周的推文


如果你需要一种获取旧推文的方法,你可以从个人用户那里获取,因为从他们那里收集推文受到数量而不是时间的限制(因此在许多情况下,你可以追溯到数月或数年前)。收集tweet的第三方服务(如)在您的情况下可能也很有用(2016年7月关闭,但存在其他服务)。

您已经注意到Twitter API有一些限制,我已经实现了一个代码,使用与在浏览器上运行Twitter相同的策略来实现这一点。看一看,你可以得到最老的推文:

找到一个代码,可以帮助检索旧的推文。

要获取旧tweet,请在提取代码存储库的目录中运行以下命令

python Exporter.py --querysearch 'keyword' --since 2016-01-10 --until 2016-01-15 --maxtweets 1000
它还返回了一个文件“output_got.csv”,上面有1000条推文,其中有你的关键字

您需要安装模块“pyquery”才能使其正常工作


PS:您可以根据需要修改“Exporter.py”python代码文件以获得更多tweet属性。

正如其他人所指出的,Twitter API有日期限制,但没有在Twitter.com上实现的实际高级搜索。因此,解决方案是使用Python的Selenium或PhantomJS包装器来迭代twitter.com端点。有人在Github上发布了一个使用Selenium的实现:

2018更新: Twitter有高级搜索API,可以从时间开始(2006年)返回结果:

搜索推文:30天终结点→ 提供前30年的推文 天

搜索推文:完整存档端点→ 提供完整和即时的 访问推文的时间可以追溯到3月份的第一条推文 2006年

以Python客户端为例:
知道这是一个非常古老的问题,但仍然有些人可能面临同样的问题。 经过一番挖掘,我发现Tweepy的搜索只返回过去7天的数据,有时会导致购买第三方服务。
我使用了python库,它对我来说工作得很好。这个库的实用性非常简单。该库的唯一限制是,我们不能在一次执行中搜索多个hashtag,但同时搜索多个帐户效果很好。

请注意,
since_id=2014-06-12
相当于
since_id=1996
,因为2014年减去6减去12等于1996年。你可以使用Rest API获取一周以上的推文,了解更多详细信息,请访问推特API参考可能的重复项是的,我尝试过,但这是不可能的,如果日期超过一周,输出就什么都没有了。所以我必须使用一种不同于搜索的方法,我想,但我找不到任何其他方法,Twitter在2014年11月打开所有旧推文:这是他们的搜索引擎,他们的API也是如此吗?@Luigi目前还没有。我今天刚测试过:(这仍然有效吗?当我尝试使用--since和until选项时,它给了我0条tweets?在香草Ubuntu 12.04上对我不起作用,因此,我必须先安装pyquery&lxml。如果有人遇到同样的问题,请执行apt get install python pip;pip install pyquery;apt get install python lxml;然后脚本就可以工作了。)对于仍在苦苦挣扎的人,您还需要安装这两个libs:sudo apt get install libxslt dev libxml2 devI试图在2015年用maxtweets 10000搜索一个月的tweets。但它只能得到大约200条。似乎日期越长,它能得到的数据就越少。这对我来说不起作用。在HTTP会议期间发生了一个错误请求:HTTP错误404:在您链接的网站中未找到运行示例的程序。Python 3.7,Ubuntu 20.04
python Exporter.py --querysearch 'keyword' --since 2016-01-10 --until 2016-01-15 --maxtweets 1000