You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用snscrape仅能抓取100条推文?如何抓取更多?

解决Twitter用户5000条推文抓取问题

问题根源

你把命令行工具snscrape的指令和Python代码混在一起执行了,这才导致语法错误。snscrape是单独在终端运行的命令,不属于Python代码;后面的pd.read_json相关代码才是Python逻辑,必须分开执行。另外抓取1000条失败,大概率是触发了Twitter的请求速率限制。

修正步骤

1. 单独执行snscrape抓取命令(终端/命令提示符中运行)

打开电脑的终端(Windows用命令提示符/PowerShell,Mac/Linux用终端),直接输入以下命令运行,不要将这段命令放到Python脚本或代码单元格里:

snscrape --jsonl --progress --max-results 5000 twitter-search "from:jack" > user-tweets.json
  • 若中途卡住或报错,说明触发了速率限制,可以分批次抓取:比如先抓2000条,再用--since参数指定上次抓取的最后一条推文的发布时间,用>>追加内容到文件,示例:
    snscrape --jsonl --progress --max-results 3000 twitter-search "from:jack since:2023-01-01" >> user-tweets.json
    

2. 用Python读取抓取结果

打开Python环境(如Jupyter Notebook、PyCharm或Python交互窗口),单独运行以下代码:

import pandas as pd  # 必须先导入pandas库,之前的代码遗漏了这一步

tweets_df = pd.read_json('user-tweets.json', lines=True)
tweets_df

额外优化建议

  • 为避免触发反爬,可添加请求间隔参数,让每次请求间隔2秒:
    snscrape --jsonl --progress --sleep 2 --max-results 5000 twitter-search "from:jack" > user-tweets.json
    
  • 确保snscrape是最新版本,终端运行pip install --upgrade snscrape完成升级,老版本可能存在兼容性bug。

内容的提问来源于stack exchange,提问作者Tom Maxwell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 04:50:27