tweepy.error.TweepError:此方法不执行分页

2024-10-04 11:33:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习如何制作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.'}]

Tags: nameapiidreadcodeerrortweetfile
1条回答
网友
1楼 · 发布于 2024-10-04 11:33:28

使用^{}时,需要传递API方法而不调用它,并像传递给方法一样将参数传递给游标

另外,^{}返回一个迭代器,而不是实际的状态对象。您可能希望将其强制转换为列表或对其进行迭代

例如:

tweets = list(tweepy.Cursor(api.search, q, tweet_mode='extended').items(tweetNumber))

我不确定您是如何使用read_last_seen(FILE_NAME),但您希望以与传递给API.search相同的方式传递它。如果是查询本身,只需用它替换q

相关问题 更多 >