Instagram 数据爬取教程:一条命令拿到粉丝数与帖子标签,无需登录
2026/8/27 16:14:20 网站建设 项目流程

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

怎么算成功:终端无报错,项目目录里能看到utilassets两个文件夹。

第 2 步:准备浏览器驱动

目标:驱动真实浏览器的 chromedriver 就位。

从 Chromedriver 官方站下载与你系统匹配的版本,改名为chromedriver_linuxchromedriver_windowschromedriver_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_USERNAMEIG_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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询