我正在学习如何制作Twitter机器人
我创建了一个“last_seen.txt”文件来跟踪用户已经交互过的推文
我正在使用以下代码:
def read_last_seen(FILE_NAME):
file_read = open(FILE_NAME, 'r')
last_seen_id = int(file_read.read().strip())
file_read.close()
return last_seen_id
def store_last_seen(FILE_NAME, last_seen_id):
file_write = open(FILE_NAME, 'w')
file_write.write(str(last_seen_id))
file_write.close()
return
之后,我宣布:
tweets = tweepy.Cursor(api.search(read_last_seen(FILE_NAME), tweet_mode='extended'), q).items(tweetNumber)
现在我得到一个错误:
raise TweepError('This method does not perform pagination')
tweepy.error.TweepError: This method does not perform pagination
最后一行
有没有其他方法来声明该行? 我理解代码本身并不错误,只是不受支持
//使用完整代码进行编辑//
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(key, secret)
api = tweepy.API(auth)
FILE_NAME = 'last_seen.txt'
def read_last_seen(FILE_NAME):
file_read = open(FILE_NAME, 'r')
last_seen_id = int(file_read.read().strip())
file_read.close()
return last_seen_id
def store_last_seen(FILE_NAME, last_seen_id):
file_write = open(FILE_NAME, 'w')
file_write.write(str(last_seen_id))
file_write.close()
return
tweetNumber = 20
q = "My search"
tweets = list(tweepy.Cursor(api.search, q, tweet_mode='extended').items(tweetNumber))
def crashBot():
for tweet in reversed(tweets):
try:
if q in tweet.full_text.lower():
print(str(tweet.id) + '-' + tweet.full_text)
api.update_status("@" + tweet.user.screen_name + " My Reply!", tweet.id)
api.create_favorite(tweet.id)
api.retweet(tweet.id)
print("done!")
store_last_seen(FILE_NAME, tweet.id)
time.sleep(10)
except tweepy.tweepyError as e:
print(e.reason)
time.sleep(10)
while True:
crashBot()
time.sleep(10)
当前错误:
raise TweepError(error_msg, resp, api_code=api_error_code)
tweepy.error.TweepError: [{'code': 187, 'message': 'Status is a duplicate.'}]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "crashBot.py", line 53, in <module>
crashBot()
File "crashBot.py", line 48, in crashBot
except tweepy.tweepyError as e:
AttributeError: module 'tweepy' has no attribute 'tweepyError'
或
raise TweepError(error_msg, resp, api_code=api_error_code)
tweepy.error.TweepError: [{'code': 139, 'message': 'You have already favorited this status.'}]
使用^{} 时,需要传递
API
方法而不调用它,并像传递给方法一样将参数传递给游标另外,^{} 返回一个迭代器,而不是实际的状态对象。您可能希望将其强制转换为列表或对其进行迭代
例如:
我不确定您是如何使用
read_last_seen(FILE_NAME)
,但您希望以与传递给API.search
相同的方式传递它。如果是查询本身,只需用它替换q
相关问题 更多 >
编程相关推荐