Instagram 数据爬取教程:一条命令拿到粉丝数与帖子标签,无需登录
【免费下载链接】instagram-profilecrawl📝 quickly crawl the information (e.g. followers, tags etc...) of an instagram profile.项目地址: https://gitcode.com/gh_mirrors/inst/instagram-profilecrawl
如果你需要持续记录 Instagram 主页的数据,instagram-profilecrawl 是一个现成的工具:在命令行传入账号名,它会自动打开浏览器,采集目标主页的粉丝数、关注数、帖子点赞数、评论数和话题标签,并写成结构化文件。一条命令、无需登录、自动落盘,交付物是每账号一份 JSON 快照和一份按时间累积的 stats.csv,可直接接进你的分析流程。
动手前先看清:能采什么、输出什么
| 采集的数据 | 输出到哪里 |
|---|---|
| 粉丝数、关注数、帖子数、简介、头像 | profiles/目录下每账号一份 JSON |
| 每篇帖子的文案、点赞、评论、标签、地点、图片链接 | 同一份 JSON 文件 |
| 评论过帖子的用户名 | profiles/下的*_commenters.txt,按评论频次排序 |
| 粉丝增长记录 | stats.csv,由 log_stats.py 生成 |
| 帖子图片 | images/用户名/,由 extract_image.py 下载 |
一句话:你报账号名,它驱动浏览器去访问,把结构化结果写进磁盘。采集逻辑在 util/extractor.py 和 util/extractor_posts.py,想深入再看这两个文件。
三步拿到第一个结果
第 1 步:克隆仓库并安装依赖
目标:本机有一份可运行的项目。
# 克隆项目并安装 python 依赖(selenium、requests 等) git clone https://gitcode.com/gh_mirrors/inst/instagram-profilecrawl cd instagram-profilecrawl pip install -r requirements.txt怎么算成功:终端无报错,项目目录里能看到util和assets两个文件夹。
第 2 步:准备浏览器驱动
目标:驱动真实浏览器的 chromedriver 就位。
从 Chromedriver 官方站下载与你系统匹配的版本,改名为chromedriver_linux、chromedriver_windows或chromedriver_osx(按你的系统选),放进项目assets/目录,util/chromedriver.py 会从这里自动加载。
怎么算成功:ls assets/能看到带系统后缀的 chromedriver 文件。
第 3 步:跑第一次爬取
目标:生成第一个 JSON 文件。
# 把账号名作为参数传入,一次可传多个 python3.7 crawl_profile.py instagram怎么算成功:终端出现 Finished 后,ls profiles/能看到带时间戳的账号 JSON 和*_commenters.txt。
最常调的三个开关:帖子量与采集速度
都在 util/settings.py,是类属性,运行前在脚本里赋值即可,不用改源码:
| 参数 | 作用 | 何时调 |
|---|---|---|
limit_amount | 单账号最多采集的帖子数(默认 1000) | 大号想覆盖更多历史帖子时调大 |
sleep_time_between_post_scroll | 每次滚动加载帖子的间隔,秒(默认 14.5) | 弱网、日志出现 "breaking in 4" 停更时调大 |
sleep_time_between_comment_loading | 加载评论的间隔,秒(默认 1.5) | 评论加载不稳定或超时 |
提醒:间隔直接决定页面请求节奏,采得太快更容易触发平台风控,中途卡住先把间隔调大再改代码。
想要更多?三种玩法:登录、定时、自动出报表
玩法一:用登录账号采集关注者列表
症状:默认只拿得到公开主页数据,想抓关注者名单或已关注的私密账号,需要登录。
操作:把.env.example复制为.env,填入IG_USERNAME和IG_PASSWORD,再在运行前给Settings.scrape_follower = True(默认False)。
结果:运行后 JSON 的 followers 字段会附带名单,建议用小号并保持低频。
玩法二:crontab 定时无人值守
症状:想让机器每天自动抓一次,人不用碰。
操作:crontab -e加两条计划,统计任务排在爬取之后几分钟(命令见第 3 节):
# 每天 03:00 爬取,03:05 写入 stats.csv 0 3 * * * cd /path/to/instagram-profilecrawl && python3 crawl_profile.py target_user >> crawl_log.txt 2>&1 5 3 * * * cd /path/to/instagram-profilecrawl && python3 log_stats.py -u target_user >> stats_log.txt 2>&1结果:每天profiles/多一份新 JSON,stats.csv多一行。树莓派等无图形界面的 ARM 设备改用 quickstart_templates/crawl_profile_pi.py,它基于 Firefox 加虚拟显示,装好pyvirtualdisplay即可跑。
玩法三:自动出增长报表
症状:JSON 是单次快照,想看粉丝数随时间怎么变,需要汇总。
操作:每次爬取完成后执行:
# -u 指定账号,不传则统计 profiles 下全部账号 python3 log_stats.py -u target_user结果:stats.csv追加时间、粉丝、关注、帖子数、点赞、评论一行,并把该 JSON 移入profiles/done/防止重复计数。想本地备份帖子图片,再跑python3.7 extract_image.py profiles,图片落在images/用户名/。
报错了看这张表
| 症状 | 可能原因 | 解决 |
|---|---|---|
| 一启动就报 chromedriver 相关异常 | 驱动缺失或与浏览器版本不匹配 | 下载匹配版本放入assets/并带系统后缀 |
| 中途卡住,日志出现 "breaking in 4" | 间隔太短,页面还没加载完 | 把sleep_time_between_post_scroll从 14.5 加到 25 |
| 登录后仍抓不到关注者 | 开关没开,或账号未关注目标 | 确认Settings.scrape_follower = True且登录账号已关注 |
| 特定账号报 404 / 无私密页 | 账号是私密主页 | 私密账号需登录账号已关注它才能访问 |
下一步做什么
手动翻页抄数的活儿到此结束:一条命令出结构化数据,crontab 接管时间维度,stats.csv就是你现成的增长曲线。
- 过一遍 util/settings.py 的全部开关,按需打开评论、点赞用户等字段
- 看 quickstart_templates/ 下的模板,学习在代码里定制爬取逻辑
- 把
stats.csv接到你的图表工具,画出第一张增长曲线
现在就去跑第 3 节那条命令,今晚拿到你的第一个 JSON。
【免费下载链接】instagram-profilecrawl📝 quickly crawl the information (e.g. followers, tags etc...) of an instagram profile.项目地址: https://gitcode.com/gh_mirrors/inst/instagram-profilecrawl
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考