巴西有关登革热的推文:前 10 名
tweets about dengue in Brazil: top 10 people
我正在使用 tweepy 获取有关巴西登革热的推文。
我很想获取有关拥有最多关注者的 10 个人的最新推文。我使用搜索 api,而不是流式传输 api,因为我不需要所有推文,只需要最相关的推文。
我很惊讶收到这么少的推文(只有 17 条)。我应该改用流式传输 api 吗?
这是我的代码:
#api access
consumer_key=""
consumer_secret=""
access_token_key=""
access_token_secret=""
import csv
#write results in file
writer= csv.writer(open(r"twitter.csv", "wt"), lineterminator='\n', delimiter =';')
writer.writerow(["date", "langage", "place", "country", "username", "nb_followers", "tweet_text"])
import tweepy
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token_key, access_token_secret)
api = tweepy.API(auth)
#get tweets for Brazil only
places = api.geo_search(query="Brazil", granularity="country")
place_id = places[0].id
print(place_id)
for tweet in tweepy.Cursor(api.search, q="dengue+OR+%23dengue&place:" + place_id, since="2015-08-01", until="2015-08-25").items():
date=tweet.created_at
langage=tweet.lang
try:
place=tweet.place.full_name
country=tweet.place.country
except:
place=None
country=None
username=tweet.user.screen_name
nb_followers=tweet.user.followers_count
tweet_text=tweet.text.encode('utf-8')
print("created on", tweet.created_at)
print("langage", tweet.lang)
print("place:", place)
print("country:", country)
print("user:", tweet.user.screen_name)
print("nb_followers:", tweet.user.followers_count)
print(tweet.text.encode("utf-8"))
print('')
writer.writerow([date, langage, place, country, username, nb_followers, tweet_text])
尝试手动搜索并查看结果。听起来您的应用程序适合搜索 API.
我想我知道问题出在哪里:place
属性很少出现在数据中。因此返回的推文很少。
我现在使用具有 pt
值的 lang
属性(不幸的是,它们不是 pt-br
语言)。这不是我想要的,因为它 returns 来自其他国家(例如葡萄牙)的推文,但它是迄今为止我能找到的最好的。
for tweet in tweepy.Cursor(api.search, q="dengue+OR+%23dengue", lang="pt", since=date, until=end_date).items():
我正在使用 tweepy 获取有关巴西登革热的推文。 我很想获取有关拥有最多关注者的 10 个人的最新推文。我使用搜索 api,而不是流式传输 api,因为我不需要所有推文,只需要最相关的推文。
我很惊讶收到这么少的推文(只有 17 条)。我应该改用流式传输 api 吗?
这是我的代码:
#api access
consumer_key=""
consumer_secret=""
access_token_key=""
access_token_secret=""
import csv
#write results in file
writer= csv.writer(open(r"twitter.csv", "wt"), lineterminator='\n', delimiter =';')
writer.writerow(["date", "langage", "place", "country", "username", "nb_followers", "tweet_text"])
import tweepy
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token_key, access_token_secret)
api = tweepy.API(auth)
#get tweets for Brazil only
places = api.geo_search(query="Brazil", granularity="country")
place_id = places[0].id
print(place_id)
for tweet in tweepy.Cursor(api.search, q="dengue+OR+%23dengue&place:" + place_id, since="2015-08-01", until="2015-08-25").items():
date=tweet.created_at
langage=tweet.lang
try:
place=tweet.place.full_name
country=tweet.place.country
except:
place=None
country=None
username=tweet.user.screen_name
nb_followers=tweet.user.followers_count
tweet_text=tweet.text.encode('utf-8')
print("created on", tweet.created_at)
print("langage", tweet.lang)
print("place:", place)
print("country:", country)
print("user:", tweet.user.screen_name)
print("nb_followers:", tweet.user.followers_count)
print(tweet.text.encode("utf-8"))
print('')
writer.writerow([date, langage, place, country, username, nb_followers, tweet_text])
尝试手动搜索并查看结果。听起来您的应用程序适合搜索 API.
我想我知道问题出在哪里:place
属性很少出现在数据中。因此返回的推文很少。
我现在使用具有 pt
值的 lang
属性(不幸的是,它们不是 pt-br
语言)。这不是我想要的,因为它 returns 来自其他国家(例如葡萄牙)的推文,但它是迄今为止我能找到的最好的。
for tweet in tweepy.Cursor(api.search, q="dengue+OR+%23dengue", lang="pt", since=date, until=end_date).items():