使用twint爬取指定用户推文仅返回20-60条无法达到3200条上限求助
Twint 爬取推文仅返回20-60条/报错No more data的排查方案
核心原因
- 官方原版Twint已停止长期维护,未适配X(原Twitter)最新的接口规则与反爬机制,PyPI源提供的最新版本无法正常拉取全量用户推文
- 配置参数缺少全量拉取标识,仅设置Limit参数无法触发完整的用户时间线拉取逻辑
- IP触发X平台临时反爬限制,请求被拦截后仅返回前几十条数据就被强制截断
- 目标账号存在仅关注者可见、已删除等非公开状态的推文,公开可爬取的内容本身少于3200条
- 使用了通用的Search方法而非专门针对用户 timeline 拉取的Profile方法,拉取逻辑适配性不足
可行修复方案
- 替换社区维护的更新版Twint分支,不要使用PyPI直接安装的官方版本,选择适配最新X平台接口规则的fork版本源码安装
- 补充必要配置参数,修改后的参考代码如下:
import twint c = twint.Config() c.Username = "jerallaire" c.Limit = 3200 c.Retweets = True c.Pandas = True c.User_full = True # 触发全量用户时间线拉取逻辑 c.Backoff_exponent = 2 # 请求被拦截时自动指数退避重试,降低反爬触发概率 c.Hide_output = False # 可查看实时爬取进度,方便定位问题 c.Store_csv = True c.Output = "Tweets.csv" # 若访问X需要代理,可取消注释下方配置并替换为你的代理地址 # c.Proxy_host = "127.0.0.1" # c.Proxy_port = 7890 # c.Proxy_type = "http" # 使用专门的Profile方法拉取用户推文,比通用Search方法适配性更高 twint.run.Profile(c)
- 若仍存在拉取截断问题,可拆分拉取的时间范围,通过
c.Since和c.Until参数分批次拉取不同时间段的推文,避免单次请求量过大触发反爬。
内容的提问来源于stack exchange,提问作者Rieder
相关产品推荐
相关产品推荐

