如何解决按关键字 tweepy 过滤推文并保存到 csv
我正在尝试查找包含“汽车”一词的推文,在所有这些推文中,我只想要有关突发新闻的推文。我的代码运行良好,但是当我添加突发新闻过滤器时,它只会打印“Tweet with keyword:” found 但不会将推文保存在我的 csv 文件中。
可能是什么问题?感谢您的帮助 - 这是参考代码:
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
from twitter_credentials import consumer_key,consumer_secret,access_token,access_token_secret
import datetime
import csv
import json
from tweepy import Cursor
# consumer key,consumer secret,access token,access secret.
ckey = consumer_key
csecret = consumer_secret
atoken = access_token
asecret = access_token_secret
filterKeywords = ['BREAKING','NEWS','Headline','This just in','News','news','toyota','Toyota']
class Listener(StreamListener):
def on_status(self,status):
# Filtering English language tweets from users with more than 500 followers
if (status.lang == "en"):
# Creating this formatting so when exported to csv the tweet stays on one line
tweet_text = "'" + status.text.replace('\n',' ') + "'"
# Filter for keyword,only write csv if correct keyword(s) found
for word in filterKeywords:
if word in tweet_text:
csvw.writerow([status.id,status.user.screen_name,# created_at is a datetime object,converting to just grab the month/day/year
status.created_at.strftime('%m/%d/%y'),status.user.followers_count,tweet_text])
print("Found tweet by keyword: " + word)
return True
def on_error(self,status_code):
if status_code == 420:
# returning False in on_error disconnects the stream
return False
if __name__ == '__main__':
# This handles Twitter authetification and the connection to Twitter Streaming API
auth = OAuthHandler(consumer_key,consumer_secret)
auth.set_access_token(access_token,access_token_secret)
stream = Stream(auth,Listener())
# Filter based on listed items
csvw = csv.writer(open("tweets_data.csv","a",encoding='utf-8'))
csvw.writerow(['twitter_id','name','created_at','followers_count','text'.encode("utf-8")])
stream.filter(track=['car'])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。