Tweepy编写Twitter机器人返回HTTP 401错误问题排查
Tweepy 流连接报
Stream encountered HTTP error: 401错误排查 这个401报错和本地时钟无关,是代码本身的认证逻辑、语法、版本写法混用导致的,具体问题点如下:
- 基础语法拼写错误:
- 类构造方法名写错:Python类初始化方法固定为
__init__,你写的__int__完全不会被执行,实例的计数参数、父类初始化逻辑全部失效 - 连接回调方法名写错:Tweepy流连接成功的回调固定为
on_connect,你写的on_conect漏了字母n,永远不会被触发
- 类构造方法名写错:Python类初始化方法固定为
- 认证逻辑完全混乱:
- 第一次实例化流对象时,传入的是
'consumer_key'这类字符串占位符,根本没有读取keys.py里存储的真实密钥,假密钥必然返回401 - 代码执行顺序写反:你在构造方法里引用
api变量、第一次启动流的时候,下方的auth认证、api初始化代码还没执行,变量根本不存在 - 新旧版本API混用:你自定义的类已经继承了新版
tweepy.Stream,后面又写了旧版v1的Stream(auth=api.auth, listener=xxx)写法,两套API参数规则不兼容,会直接导致认证参数传递失效
- 第一次实例化流对象时,传入的是
- 执行逻辑错误:第一次调用
stream.filter()时就会阻塞启动流,下方的所有代码都不会被执行
修正方案
- 先确认Twitter开发者后台的四个密钥(consumer key、consumer secret、access token、access token secret)复制完整,没有多余空格、换行,应用已经开启推文读取权限
- 统一使用Tweepy v4+的新版流写法,修正所有拼写错误,调整代码执行顺序,修正后的可运行代码如下:
import tweepy import keys from textblob import TextBlob class TweetListener(tweepy.Stream): """处理 incoming 推文流""" def __init__(self, consumer_key, consumer_secret, access_token, access_token_secret, limit): """初始化推文计数参数""" self.tweet_count = 0 self.TWEET_LIMIT = limit # 正确调用父类初始化,传入认证参数 super().__init__(consumer_key, consumer_secret, access_token, access_token_secret) def on_connect(self): """连接成功回调""" print("Connection successful\n") def on_status(self, status): try: tweet_text = status.extended_tweet.full_text except: tweet_text = status.text print(f'Screen name: {status.user.screen_name}') print(f'Language: {status.lang}') print(f'Status: {tweet_text}') if status.lang != 'en': try: print(f'Translated: {TextBlob(tweet_text).translate()}') except: print("翻译接口调用失败") print() self.tweet_count += 1 # 达到采集上限后返回False终止流 return self.tweet_count != self.TWEET_LIMIT if __name__ == "__main__": # 初始化流,传入keys里的真实密钥,设置采集上限为10条 stream = TweetListener( keys.consumer_key, keys.consumer_secret, keys.access_token, keys.access_token_secret, limit=10 ) # 启动流,跟踪关键词 stream.filter(track=['python', 'Mars Rover'])
如果运行时还是报401,直接去Twitter开发者平台重新生成一组密钥替换即可,大概率是密钥输错或者权限没开,不用反复调整系统时钟。
内容的提问来源于stack exchange,提问作者Stephen Martinez
相关产品推荐
相关产品推荐

