【发布时间】:2015-08-29 22:28:48
【问题描述】:
我对 python 很陌生,正在尝试学习如何创建基本的 twitter 机器人。我正在尝试使用流 API 并获取句柄名称。我从文件中检查是否已经对获取的句柄进行了发布。如果是,那么我忽略我发布的其他内容。当一个新的句柄出现时,代码可以工作,但是当一个重复的句柄出现时,我收到以下错误:
C:\Users\User\Desktop>Stream-Reply_new.py
Traceback (most recent call last):
File "C:\Users\User\Desktop\Stream-Reply_new.py", line 50, in <module>
twitter_stream.filter(track=['#musiclovers'])
File "C:\Python27\lib\site-packages\tweepy\streaming.py", line 430, in filter
self._start(async)
File "C:\Python27\lib\site-packages\tweepy\streaming.py", line 346, in _start
self._run()
File "C:\Python27\lib\site-packages\tweepy\streaming.py", line 286, in _run
raise exception
NameError: global name 'status' is not defined
import tweepy
from tweepy import Stream
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
import json
import time
consumer_key =
consumer_secret =
access_token =
access_secret =
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
def check():
datafile = file('C:\Users\User\Desktop\Growth Handles.txt', 'r')
found = False
for line in datafile:
if status.user.screen_name in line:
found = True
break
return found
class MyListener(StreamListener):
def on_status(self, status):
f=status.user.screen_name
if check() :
pass
else:
Append=open('Growth Handles.txt' , 'a' )
Append.write(f)
Append.close()
Reply='@' + f + ' Check out Tomorrowland 2014 Setlist . http://.... '
api = tweepy.API(auth)
api.update_status(status=Reply)
time.sleep(45)
return True
def on_error(self, status):
print(status)
return True
twitter_stream = Stream(auth, MyListener())
twitter_stream.filter(track=['#musiclovers'])
【问题讨论】: