三步跑通首个采集任务:MediaCrawler-new 社交媒体数据采集新手实战指南
【免费下载链接】MediaCrawler-new项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new
如果你之前要手工复制粘贴几百条评论,得花上三个小时;那么用MediaCrawler-new,这条工作量可以被压缩成一条命令。这是一个基于 playwright 模拟真实浏览器的开源爬虫框架,覆盖小红书、抖音、快手、B站、微博五大平台的社交媒体数据采集,登录后跑一条命令,就能产出结构化数据。不需要懂接口签名,也不需要抓包,改几行配置就能开始。
从安装到出数据:环境配置与运行三步走
第一步:安装环境与依赖
git clone https://gitcode.com/GitHub_Trending/me/MediaCrawler-new cd MediaCrawler-new python -m venv venv source venv/bin/activate # Windows 用户改成 venv\Scripts\activate pip install -r requirements.txt playwright install前四行把仓库克隆到本地,并用venv给项目建一个独立的"工作间",依赖装在里面不会污染系统环境。最后两行分别安装 Python 依赖和浏览器驱动,后者是程序模拟真实浏览器的基础。
第二步:修改三行核心配置
打开config/base_config.py,改三行:
PLATFORM = "xhs" # 爬哪个平台:xhs | dy | ks | bili | wb KEYWORDS = "python" # 搜什么关键词 LOGIN_TYPE = "qrcode" # 怎么登录:qrcode | phone | cookie这三个配置分别回答"爬哪""搜什么""怎么登录",是最常用的三个开关。其余参数都有默认值,新手阶段可以先不动。
第三步:运行采集命令并扫码登录
python main.py --platform xhs --lt qrcode --type search这条命令的意思是:爬小红书(xhs)、二维码登录(qrcode)、按关键词搜索(search)。程序会弹出浏览器窗口显示二维码,用手机小红书 APP 扫码确认后开始采集。结果默认保存为data/目录下的 JSON 文件。
原理速读:为什么不抓包、不逆向也照样能用
先讲透原理,你才会用得放心。MediaCrawler-new 的思路是:用 playwright 打开一个真实的浏览器上下文,你扫码登录成功后,浏览器会保留这次会话;之后需要加密参数时,直接在页面里执行 JS 表达式拿到结果。
一句话概括:它不逆向破解,而是扮演一个真实用户。逆向难度被平台方和"浏览器环境"分摊掉了,你作为使用者,只需要会改配置文件。
三个典型使用场景
竞品口碑分析:市场调研、运营岗位常用。改一下KEYWORDS,就能批量拿到相关笔记的标题、正文、图片、点赞数、收藏数、评论数,还能连评论区一起抓(开启评论开关后),存下来直接做统计对比。
热点趋势追踪:内容创作者常用。支持关键词搜索,也可以指定视频 ID 直接爬取,抓下来的数据存成 CSV 后导入 Excel 简单排序,近期什么类型的内容跑得快一目了然。
学术研究数据准备:论文、课题的数据准备场景。数据以JSON格式完整保存,字段结构化,方便用 Python 做词频统计、情感分析;数据来源和口径清清楚楚,写"数据与方法"章节更踏实。
让采集更稳的三个"隐藏开关" ⚙️
这三个开关都在config/base_config.py里,容易被忽略,关键时刻很顶用。
免扫码的登录状态缓存设置
把SAVE_LOGIN_STATE保持为True(默认值),登录成功的状态会被缓存。下次运行脚本,浏览器直接带着上次的登录上下文开始爬,省去扫码等待。想换账号?删掉项目根目录下的brower_data/文件夹重新登录即可。这个功能特别适合"每天定时跑一次"的固定采集任务。
代理IP池防风控设置
采集量一大,频繁请求很容易触发平台风控。开启ENABLE_IP_PROXY = True后,程序会从代理服务商拉取 IP、存入 Redis 缓存、组建代理池,每次请求随机取用。池子大小由IP_PROXY_POOL_COUNT控制:轻度使用 2~3 个够用,重度采集建议 10 个以上。注意该功能需要本机装好 Redis,完整配置见 docs/代理使用.md。
在代理平台生成 API 提取链接后,把其中的key和crypto两个参数填入环境变量,程序才能拉到代理 IP:
无头模式后台静默运行
HEADLESS = True表示不弹出浏览器窗口,程序在后台静默运行,省资源也不干扰你干别的,服务器部署或长时间批量采集时建议保持开启。有个例外:如果小红书扫码一直登录不通过,可以临时把它改成False,让浏览器弹出来手动过一次滑动验证码,登录成功后再改回去。
报错速查:四个常见问题与解法 🚨
现象:报
SyntaxError: 缺少 ';'原因:没装 Node.js(playwright 运行依赖 Node.js 环境)。解法:安装 v16.8.0 及以上版本的 Node.js。这个问题在抖音平台上最常出现。现象:报
Timeout 30000ms exceeded原因:网络不通,浏览器加载不出来。解法:先检查网络,比如是否开了代理工具、能否正常访问目标平台。现象:跑一会儿就采集不到数据了原因:大概率是账号触发了平台风控。解法:立刻降低采集频率和并发数,把
MAX_CONCURRENCY_NUM和CRAWLER_MAX_NOTES_COUNT调小。别硬扛,硬扛的后果是账号被限制。现象:不想搜关键词,想按指定帖子采集解法:把帖子 ID 填进对应平台的 ID 列表(如
XHS_SPECIFIED_ID_LIST),再运行python main.py --type detail即可。
更多运行问题可以查阅 docs/常见问题.md,大部分报错都能在那里找到现成答案。
下一步:先跑 20 条数据试水
现在就给一个可执行的小目标:去config/base_config.py填上你的第一个关键词,跑通第一条命令,默认配置下每次最多采 20 条(CRAWLER_MAX_NOTES_COUNT),正好用来试水。数据格式、字段口径确认没问题后,再按业务节奏逐步放量。
最后把底线记牢:这个项目仅用于学习和研究,请勿对平台进行大规模爬虫或任何非法行为。只采公开数据、控制频率、尊重用户隐私与平台规则——数据是用来理解与创造的,不是给平台添麻烦的。把精力省下来,花在真正有价值的事情上。
【免费下载链接】MediaCrawler-new项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考