使用tweepy光标收集推文

时间:2019-05-15 19:19:03

标签: file csv tweets

我想将包含一些关键字的推文(以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,文本,源信息。

此代码未返回任何错误,也未返回任何消息。

1 个答案:

答案 0 :(得分:0)

tweepy.cursor返回状态,其中_json是存在所有tweet字段的字典。所以代码应该是

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

... 然后它起作用了。