使用Tweepy创建多Twitter用户关注者字典,解决5000条每页限制问题
修复Tweepy获取大量关注者时仅存储最后一页的问题
嘿,刚接触Tweepy的时候很容易踩这个分页的坑,我来帮你搞定!
问题根源
你现在的代码里,每次循环到followers_dict[h] = page时,都会把之前存储的关注者列表直接替换成当前页的内容。当用户关注者超过5000时,Tweepy会自动分成多页返回(每页最多5000条),所以最后字典里只留下了最后一页的数据。
修复后的代码
只需要调整存储逻辑,把每一页的关注者ID追加到列表里,而不是直接替换:
followers_dict = {} for h in myHandleList: try: # 先为当前用户初始化一个空列表,用来存所有关注者ID followers_dict[h] = [] c = tweepy.Cursor(api.followers_ids, id=h) for page in c.pages(): # 用extend把当前页的所有ID追加到列表末尾 followers_dict[h].extend(page) except tweepy.TweepError: # 加个打印提示,方便知道哪个用户出了问题 print(f"获取用户 {h} 的关注者时发生错误,已跳过该用户") pass
关键改动说明
- 初始化空列表:在开始获取分页数据前,先给
followers_dict[h]赋值一个空列表,确保后续可以持续追加内容。 - 使用
extend()而非直接赋值:page是当前页的ID列表,extend()会把这个列表里的每一个元素都添加到目标列表中,而不是像=那样直接替换整个列表。这样所有分页的ID就会被合并成一个完整的列表存在字典里。
这样修改后,不管用户有多少关注者(只要在API允许的范围内),所有的ID都会被完整存储到字典对应的列表里啦!
内容的提问来源于stack exchange,提问作者br997
相关产品推荐
相关产品推荐

