我正在开发一个我需要提取推文的项目。我在python中使用了tweepy,使用各种在线信息来源,因为我对python不太满意。我遇到了两个我无法通过谷歌搜索解决的问题! 1)我希望大约1000存储在一个文件中。我想我可以使用一个count变量,但不知道在哪里以及如何使用它。基本上,一旦我得到1000条推文,如何终止程序? 2)打印到文件时,我在on_status上收到一条错误,上面写着“文件”Tweet3.py“,第20行 print“Tweet Text:%s”%status.text UnicodeEncodeError:'ascii'编解码器无法对位置65中的字符u'\ u2019'进行编码:序数不在范围内(128)“ - 我怎么可能解决这个错误?
以下是代码:
import sys
import tweepy
import webbrowser
fp=open("Tweets.txt","w")
Q=['Earthquake','Flood']#Filters
c_key = '...'
c_secret = '...'
a_token= '...'
a_token_sec= '...'
auth = tweepy.OAuthHandler(c_key, c_secret)
auth.set_access_token(a_token, a_token_sec)
class CustomStreamListener(tweepy.StreamListener):
def on_status(self, status):
print "----------NEW TWEET!-----------"
print "Tweet Text : %s"%status.text
fp.write(status.text)
print "Author's name : %s"%status.author.screen_name
print "Time/Date of creation : %s"%status.created_at
print "Source of Tweet : %s"%status.source
print "Coordinates : %s"%status.coordinates
streaming_api = tweepy.streaming.Stream(auth, CustomStreamListener(), timeout=60)
print "Displaying Tweets for filters :"
#print Q
#streaming_api.filter(follow=None, track=Q)
streaming_api.filter(locations=[-125,25,-65,48], async=False)
答案 0 :(得分:1)
在将文本写入文件之前先对其进行编码:
status.text.encode('utf8')
修改强>
请改为尝试:
import codecs
fp = codecs.open("Tweets.txt", "w", "utf-8")
fp.write(status.text)
修改强>
创建一个计数器,并在每次发布新推文时递增它,例如:
counter = 0
MAX_TWEETS = 1000
<_>在on_status方法中:
counter += 1
if counter >= MAX_TWEETS:
sys.exit()