我想将包含一些关键字的推文(以python词典格式)收集到一个csv文件中。我用过tweepy光标。但是它什么也没返回。
按照“ Managing Tweepy API Search”中的答案,我尝试使用光标来收集推文。但是代码会在几秒钟后停止,并且不会返回任何消息。
import TwitterCredentials
import tweepy
import csv
from tweepy import OAuthHandler
import json
def authenticate():
auth=OAuthHandler(TwitterCredentials.consumerKey,
TwitterCredentials.consumerSecretKey)
auth.set_access_token(TwitterCredentials.accessToken,
TwitterCredentials.accessTokenSecret)
api=tweepy.API(auth)
return api
def collectTweet(api, query, max_tweets):
i=1
for tweet in tweepy.Cursor(api.search, q=query).items(max_tweets):
loadCsvFile(json.loads(tweet))
print(str(i)+ " ")
i+=1
def loadCsvFile(tweet):
csv_file.writerow([tweet['id'],tweet['created_at'],tweet['text'],
tweet['retweet_count'],tweet['source']])
if __name__ == '__main__':
query=['air pollution', 'PM 2.5']
max_tweets=500
f=open('collected_tweets.csv', 'w')
csv_file=csv.writer(f)
csv_file.writerow(['id','created_at','text',
'retweet_count','source'])
api=authenticate()
collectTweet(api, query, max_tweets)
我想以字典格式获取消息,以便可以从中提取id,created_at,文本,源信息。
此代码未返回任何错误,也未返回任何消息。
答案 0 :(得分:0)
tweepy.cursor返回状态,其中_json是存在所有tweet字段的字典。所以代码应该是
for status in tweepy.Cursor(api.search, q=query, lang='en').items(max_tweets):
loadCsvFile(status._json)
... 然后它起作用了。