如何使用python和tweepy从Twitter收集两个给定日期之间的推文?
有没有办法从...直到...值到搜索API?
注意:
我需要能够回溯但不限于特定用户
我正在使用python,我知道代码应该是这样的,但我需要帮助才能使它工作。
auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token_key, access_token_secret) api = tweepy.API(auth) collection = [] for tweet in tweepy.Cursor(api.search, ???????).items(): collection[tweet.id] = tweet._json
答案 0 :(得分:5)
经过长时间的调查和稳定后,我很乐意分享我的发现。
按地理位置搜索:在' q'中传递地理编码参数此格式的参数: geocode:" 37.781157,-122.398720,500mi" ,双引号很重要。请注意,此api不再支持 near 参数。地理编码提供了更大的灵活性
按时间线搜索:使用参数"因为" "直到"采用以下格式:"自:2016-08-01至:2016-08-02"
还有一个更重要的注意事项...... twitter不允许查询日期太旧。我不确定,但我认为他们只给了10-14天。所以你不能用这种方式查询上个月的推文。
===================================
for status in tweepy.Cursor(api.search,
q='geocode:"37.781157,-122.398720,1mi" since:2016-08-01 until:2016-08-02 include:retweets',
result_type='recent',
include_entities=True,
monitor_rate_limit=False,
wait_on_rate_limit=False).items(300):
tweet_id = status.id
tweet_json = status._json
答案 1 :(得分:0)
截至目前,Tweepy 并不是最好的解决方案。最好的解决方案是使用 python 库 SnScrape,它可以抓取 twitter,因此可以在 2 周上限 twitter 设置后获取推文。下面的代码只抓取了日期之间的 100 条英文推文,并且只获取了推文 ID,但它可以轻松扩展以进行更具体的搜索、更多或更少的推文,或者获取有关推文的更多信息。
import snscrape.modules.twitter as sntwitter
tweetslist = []
params="'"+"lang:en "+"since:2020-11-1"+" until:2021-03-13"+"'"
for i,tweet in enumerate(sntwitter.TwitterSearchScraper(params).get_items()):
if i>100:
break
tweetslist.append([tweet.id])
print(tweetslist)
答案 2 :(得分:-1)
tweepy是twitter API的包装器,因此您应该可以使用此参数。
根据地理位置,请查看The Search API: Tweets by Place。它使用相同的搜索API和自定义键。