我试图从过去一周收到来自某个国家/地区的推文(7天是我迄今为止所阅读的限制)但我似乎无法获得大量的推文结果。这只是因为人们在发推文时没有打开他们的地理标签吗?或者我的代码出了什么问题?我现在运行时得到44分,但我觉得过去一周肯尼亚有超过44条推文。
# -*- coding: utf-8 -*-
import tweepy
import csv
# info
CONSUMER_KEY = '...'
CONSUMER_SECRET = '...'
ACCESS_TOKEN = '...'
ACCESS_SECRET = '...'
COUNTRY = 'Kenya'
# get authorization
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)
# get tweets from country
place = api.geo_search(query=COUNTRY, granularity="country")
place_id = place[0].id
# print tweets and save to csv file
with open('tweets.csv', 'w', newline='', encoding='utf-8') as csvFile:
tweetWriter = csv.writer(csvFile, delimiter=',')
tweets = api.search(q='place:%s' % place_id, count=100, since='1')
count = 0
for tweet in tweets:
count += 1
# tweet.id = unique id for tweet, text = text, place.name = where it was posted, created_at = UTC time
tweetData = [tweet.id, tweet.user.name, tweet.text, tweet.place.name, tweet.created_at]
tweetWriter.writerow(tweetData)
print(count)
编辑: 我似乎无法从一个国家找到超过过去20-30分钟的推文的方法,我选择使用tweepy的流并使用坐标将结果过滤到我周围的一个方框国家而不是试图提取过去的数据。