tweepy 它不会关注某些推文

tweepy It won't follow some of the tweets

似乎是某些带有关键字 'follow' 的推文 它会随之而来,但对于其中一些人来说,它不会…… 除此之外它工作正常(我没有注意到其他东西) 有人可以查明问题出在哪里吗?

class Listener():

def search(self, twts):
    global numoftwts
    for i in twts:
        names = ['follow', 'following']
        txt = i.text.lower()
        if not any(k in txt for k in keywords) or any(k in txt for k in bannedwords):
            continue
        if not self.is_user_bot_hunter(str(i.author.screen_name)):
            if not i.retweeted:
                try:
                    print("Trying to retweet status_id:{}".format(i.id))
                    res = api.retweet(i.id)
                    if res.retweeted:
                        api.create_favorite(i.id)
                        print('retweeted', numoftwts, 'times', '-',
                              str(datetime.datetime.fromtimestamp(time.time()).strftime('%d-%m-%Y %H:%M:%S')))

                        print(i.text)
                        print('\n')
                    else:
                        print("retweet failed")

                    if any(c in txt for c in names):
                        # print("Trying to follow something")
                        # if hasattr(i, 'retweeted_status'):
                        #     print("trying to fetch user_id")
                        user_id = i.retweeted_status.user.id_str
                        res = api.create_friendship(user_id)
                        res = api.get_user(user_id)
                        if res.following:
                            print("Successfully followed :{}".format(user_id))
                            print('\n')

                except Exception as e:
                    print("Exception:".format(str(e)))
                    continue
        sleep(600)

     def run(self):
            for eachkey in keywords:
            tweets = api.search(q=eachkey, result_type='mixed', lang='en')
            self.search(tweets)

if __name__ == '__main__':
    while True:
        r = Listener()
        r.run()

我哪里错了?

AttributeError: 'Status' object has no attribute 'retweeted_status'
> c:\users\x\desktop\twitterbot\twtbotcopy.py(64)search()
-> user_id = i.retweeted_status.user.id_str
(Pdb) n
> c:\users\x\desktop\twitterbot\twtbotcopy.py(70)search()
-> except Exception as e:
(Pdb) n
AttributeError: 'Status' object has no attribute 'retweeted_status'
-> user_id = i.retweeted_status.user.id_str

意思是要获取转推的用户ID,对于非转推的推文

我想知道一条推文是不是转发,测试是:

if hasattr(tweet, 'retweeted_status'):
    # this tweet is a RT

如果您遇到无法从特定用户获取推文的任何错误,请使用:

try:
    specific_tweets = tweepy.Cursor(api.search, tweet_mode='extended', q= <some query>, lang='en').items(500)
except tweepy.error.TweepError:
    pass

如果您想访问推文的转推属性,请执行以下操作:

if hasattr(tweet, 'retweeted_status'):
            extracted_author = tweet.retweeted_status.user.screen_name
        else: extracted_author = tweet.user.screen_name

基本上检查推文的hasattr(tweet, 'retweeted_status')是否真实。它检查推文是否具有名为 "retweeted_status"

的属性