使用Tweepy时报错'API' object has no attribute 'search'如何解决
报错原因
- 你使用的tweepy为4.0及以上版本,3.x版本中存在的
API.search方法在新版本中已被正式移除,重命名为API.search_tweets,调用已删除的旧方法名就会触发属性不存在的报错 - 代码存在导入疏漏,开头仅从tweepy导入了
OAuthHandler,后续代码直接调用tweepy.OAuthHandler、tweepy.Cursor等类时无法识别tweepy模块,也会触发相关报错
修复方案
方法一:适配新版tweepy(推荐)
- 调整导入语句,完整导入tweepy库
import tweepy import pandas as pd
- 修改循环代码中的方法名和参数,新版接口
search_tweets的时间参数since已被弃用,需改用start_time,且格式需符合ISO 8601标准:
for tweet in tweepy.Cursor(api.search_tweets, q="@BNonnecke", count=450, start_time="2020-02-28T00:00:00Z").items(50000):
注:该接口默认仅支持查询最近7天的公开推文,如需查询更早时间的内容,需要申请Twitter开发者学术研究权限
方法二:降级tweepy版本兼容旧代码
如果不想改动原有代码逻辑,可以直接安装3.x版本的tweepy:pip install tweepy==3.10.0
安装完成后原有代码可直接正常运行。
补充注意事项
- 运行前需要确认你填写的四个密钥参数有效,且对应开发者账号已开通v1.1接口的访问权限
- 若爬取的是指定用户的主页推文,也可以直接使用
user_timeline方法,查询效率更高,无需通过关键词搜索匹配
内容的提问来源于stack exchange,提问作者MellyJ13
相关产品推荐
相关产品推荐

