使用 tweepy 游标收集推文

collecting tweets using tweepy cursor

我想将包含一些关键词的推文(以python字典格式)收集到一个csv文件中。我用过 tweepy 光标。但它 return 没什么。

根据“Managing Tweepy API Search”中的答案,我尝试使用光标收集推文。但是代码在几秒钟后停止,没有 returning 任何消息。

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、文本、来源信息。

此代码没有 return 任何错误,也没有 return 任何消息。

tweepy.cursor returns 状态,其中 _json 是包含推文所有字段的字典。所以代码应该是

for status in tweepy.Cursor(api.search, q=query, lang='en').items(max_tweets):
           loadCsvFile(status._json)

... 然后就成功了。