Tweepy 401 Unauthorized错误:免费开发者账号爬取推文问题
解决Tweepy API 401未授权错误的步骤
1. 修复代码中的变量错误
你的代码重复实例化了tweepy.Client,第二次实例化时使用的consumer_key、consumer_secret等变量未定义,直接使用未赋值的变量会导致认证信息错误。保留一次实例化即可,确保密钥信息正确填写:
import tweepy # 替换为你自己的真实密钥 consumer_key = "你的consumer_key" consumer_secret = "你的consumer_secret" access_token = "你的access_token" access_token_secret = "你的access_token_secret" # 仅实例化一次Client client = tweepy.Client( consumer_key=consumer_key, consumer_secret=consumer_secret, access_token=access_token, access_token_secret=access_token_secret ) query = 'news' tweets = client.search_recent_tweets(query=query, max_results=10) if tweets.data: for tweet in tweets.data: print(tweet.text) else: print("未获取到推文")
2. 确认密钥与应用权限匹配
- 检查使用的Access Token和Access Token Secret是否为对应应用的最新生成值,不要混用旧密钥或其他应用的密钥。
- 确认开发者应用权限:免费版账号的
search_recent_tweets接口需要应用具备Read权限,修改权限后需重新生成Access Token才能生效。
3. 验证认证信息有效性
用以下代码单独验证认证是否成功,排除爬取接口的额外干扰:
import tweepy consumer_key = "你的consumer_key" consumer_secret = "你的consumer_secret" access_token = "你的access_token" access_token_secret = "你的access_token_secret" auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) api = tweepy.API(auth) try: user = api.verify_credentials() if user: print(f"认证成功,当前用户:{user.screen_name}") except tweepy.errors.Unauthorized: print("认证失败,请检查密钥")
如果这段代码输出认证成功,再运行爬取推文的代码;若失败,重新核对密钥和应用配置。
4. 注意免费版API限制
免费版Twitter API的search_recent_tweets仅能获取最近7天的推文,且每15分钟最多允许100次请求,超出限制会返回429错误,但当前401为认证问题,优先解决认证环节。
内容的提问来源于stack exchange,提问作者Umer
相关产品推荐
相关产品推荐

