news 2026/9/11 14:13:23

Instagram 数据爬取完整指南:一条命令抓取粉丝数与帖子标签,还能 24 小时无人值守

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Instagram 数据爬取完整指南:一条命令抓取粉丝数与帖子标签,还能 24 小时无人值守

Instagram 数据爬取完整指南:一条命令抓取粉丝数与帖子标签,还能 24 小时无人值守

【免费下载链接】instagram-profilecrawl📝 quickly crawl the information (e.g. followers, tags etc...) of an instagram profile.项目地址: https://gitcode.com/gh_mirrors/inst/instagram-profilecrawl

instagram-profilecrawl 是一个无需登录的 Instagram 数据爬取工具:输入用户名,它就用浏览器模拟访问,把资料、帖子、标签、点赞与评论全部抓取下来,存成结构化 JSON。跑上一周定时任务,你还能直接拿到粉丝增长曲线的数据表。

你会拿到什么

跑一次命令,项目目录下会多出三类产出物:

产出物位置内容
资料 JSONprofiles/{用户名}.json粉丝数、关注数、帖子数,以及每篇帖子的文案、发布时间、图片链接、地点、标签、点赞数、评论
评论者名单profiles/{用户名}_commenters.txt所有评论过的用户,按评论频率排序
增长报表stats.csv每次运行的时间戳、粉丝数、关注数、帖子数、总点赞、总评论

粉丝数 1950、帖子 127 篇的账号,JSON 里大致长这样:

{ "username": "grossertim", "num_of_posts": 127, "followers": 1950, "following": 310, "posts": [ { "caption": "It was a good day", "date": "2018-04-26T15:07:32.000Z", "tags": ["#fun", "#good", "#goodday", "#happy"], "likes": 284, "comments": {"count": 0, "list": []} } ] }

所有字段都是结构化数据,可以直接喂给 pandas、Excel 或任何报表工具。

三步完成首次 Instagram 资料爬取

第 1 步:克隆并安装依赖

git clone https://gitcode.com/gh_mirrors/inst/instagram-profilecrawl cd instagram-profilecrawl pip install -r requirements.txt

依赖里核心是selenium(用真实浏览器驱动页面)和requests,装完即可。

第 2 步:放入浏览器驱动

工具靠 Chromedriver 驱动 Chrome。从 Chromedriver 官方渠道下载与你 Chrome 版本匹配的版本,把可执行文件放进项目根目录的assets/文件夹即可。项目里的scripts/unix.shscripts/windows.ps1是现成的环境准备脚本,可以参考它们自动下载并摆放驱动。

第 3 步:运行爬取

python3 crawl_profile.py instagram

也支持一次传多个账号:

python3 crawl_profile.py user1 user2 user3

看到终端打印Finished. The json file and nicknames ... saved in profiles directory就说明成功了,打开profiles/instagram.json核对数据即可。

到这里,你已经能手动抓取任意公开账号的全部资料。

原理速览:三类文件串起整条链路

工具的结构很轻,理解三类文件就够:

角色文件职责
调度入口crawl_profile.py读取命令行用户名,启动浏览器,逐个账号提取并落盘
参数中心util/settings.py一个Settings类集中控制爬取规模、间隔、输出开关
数据输出util/datasaver.py把提取结果写成 JSON 和评论者文本

流程是单向的:命令行传入用户名 → Selenium 打开账号主页 →util/extractor.pyutil/extractor_posts.py分别提取资料页和帖子详情 → 写入profiles/。后续想深入后端逻辑,读这两个 extractor 文件收益最大。

场景一:用 crontab 自动产出粉丝增长报表

stats.csv每行记录的字段是:时间戳、用户名、粉丝数、关注数、帖子数、总点赞、总评论。每天抓一次,数据表自然长成增长曲线。

关键在于两个脚本的执行顺序:先crawl_profile.py,再log_stats.py。统计脚本会把处理完的资料 JSON 移进profiles/done/,避免同一份数据被重复计入。

编辑定时任务:

crontab -e

加入两行,3 点爬取,3 点 05 分统计:

0 3 * * * cd /path/to/instagram-profilecrawl && python3 crawl_profile.py competitor_a >> crawl_log.txt 2>&1 5 3 * * * cd /path/to/instagram-profilecrawl && python3 log_stats.py -u competitor_a >> stats_log.txt 2>&1
  • log_stats.py -u 用户名:只统计指定账号;不带参数则统计profiles/下所有账号。

一周后打开stats.csv,第一列到第五列就是时间序列上的粉丝数,画图即可。

场景二:一条命令批量下载帖子图片

JSON 里每篇帖子都有图片链接,想要本地备份素材,无需自己解析:

python3 extract_image.py profiles

参数是资料目录路径(默认就是profiles),图片会保存到images/{用户名}/下。脚本自动跳过没有帖子的账号,遇到非 JSON 文件会提示Unsupported file type

适合做素材归档、或离线分析"哪些帖子配图风格带来了更多互动"。

场景三:在树莓派或无图形界面上跑

默认入口依赖 Chrome,但项目内置了 crawl_profile_pi.py 的树莓派版本(基于 Firefox + 虚拟显示),无桌面环境也能运行:

sudo apt-get install firefox-esr sudo pip3 install pyvirtualdisplay python3 crawl_profile_pi.py target_user

它通过pyvirtualdisplay(虚拟屏幕)驱动 Firefox,其余产出与主入口一致。跑在 24 小时通电的小主机上,就是现成的无人值守采集节点。

进阶:util/settings.py 里值得动的 5 个开关

所有可调项集中在util/settings.pySettings类,改默认值,或在运行前给Settings重新赋值即可,无需动源码:

开关默认值作用
limit_amount1000每个账号最多分析的帖子数,大号可调大
sleep_time_between_post_scroll14.5帖子滚动间隔(秒),弱网或被风控时调大
scrape_posts_likersFalse额外抓取每篇帖子的点赞用户名单,耗时很长
scrape_followerFalse抓取关注者列表,必须登录且账号已关注目标
output_commentsFalse把完整评论内容写进 JSON

登录属于可选功能:把.env.example复制为.env,填入IG_USERNAMEIG_PASSWORD,工具会自动登录。登录后还能访问你已关注的私密账号。模板脚本quickstart_templates/crawl_profile_with_login.py演示了完整的登录写法;想只抓资料不抓帖子,可参考crawl_profile_without_posts.py

提醒:登录和拉取关注者都请用小号并控制频率,scrape_posts_likers每批只加载 12 个用户,开启后整体耗时会显著增加。

排错:遇到这几种现象怎么处理

  • 启动即报驱动相关异常→ Chromedriver 缺失或与 Chrome 版本不匹配。重新下载匹配版本放入assets/;树莓派用户改走crawl_profile_pi.py路线,并确认 geckodriver 已就位。
  • 爬取中途失败、长时间无响应→ 多为滚动间隔太短触发风控或网络超时。把sleep_time_between_post_scroll从 14.5 逐步加到 25 再试。
  • 登录后仍抓不到关注者→ 确认Settings.scrape_follower = True,且登录账号确实已关注目标;超大账号上该功能本身也不稳定,可重试。
  • stats.csv 里没有新数据log_stats.py必须在爬取完成后执行,且只处理profiles/下未归档的 JSON;检查是否漏跑或顺序反了。

深入阅读与模板

  • quickstart_templates/下有 5 个可直接改的模板:登录版、树莓派版、只抓粉丝、只抓资料不抓帖子、以及纯数据解析脚本parse_instagram.py,适合把爬取逻辑嵌进自己的项目。
  • util/extractor.pyutil/extractor_posts.py是字段提取的核心,想知道 JSON 里每个字段怎么来的,从这里读起。
  • util/instalogger.py控制日志行为,Settings.log_output_tofileTrue时日志写入logs/

下一步

  1. 今天就跑通第一条python3 crawl_profile.py 任意账号,确认profiles/下生成了 JSON。
  2. 配置上面那两条 crontab,一周后打开stats.csv画出第一张粉丝增长曲线——数据底座就位,剩下的交给你的分析工具。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 5:45:47

社保大数据竞赛实战:Python与LightGBM全流程

简介:在大数据时代,机器学习技术广泛用于政务数据挖掘,其中基于梯度提升树的LightGBM以高效训练和类别特征支持成为表格数据建模的主流。真实业务场景中的数据往往体量大、维度杂,且存在严重类别不平衡,如何通过特征工…

作者头像 李华
网站建设 2026/8/30 13:13:56

基于RAG的408考研本地化问答系统:从架构到调优实践

简介:检索增强生成(RAG)是一种将外部知识库与生成式大模型结合的框架,通过先检索再生成的方式显著提升回答的准确性与可溯源性。其核心原理是把文档切块、向量化存入数据库,在提问时召回相关片段并交由模型组织答案。R…

作者头像 李华
网站建设 2026/8/30 7:22:32

具身智能落地指南:从Demo到生产线的关键跨越与工程实践

一场技术路演上,具身智能机器人轻巧地完成叠衣、拧瓶盖、抓取零件,观众席一再响起掌声。但是当镜头切回真实的汽车工厂、物流仓库或者电子装配车间,情况往往完全不同:来料位置是乱的,光线是变的,节拍是按秒…

作者头像 李华
网站建设 2026/8/30 5:05:18

钉钉千问办公:个人版与企业版的区别及收费标准详解

1. 引言 随着 AI 办公工具的普及,钉钉也推出了自己的 AI 助手——钉钉千问办公。很多用户在初次接触时都会困惑:个人版和企业版到底有什么区别?收费又是怎样的?本文将从功能、适用场景和收费标准三个维度,为你详细拆解…

作者头像 李华
网站建设 2026/9/10 5:42:19

钉钉智能排班:收费模式与核心功能详解

1. 引言 随着企业数字化管理的深入,排班管理已成为许多企业日常运营中不可或缺的一环。钉钉作为国内领先的企业协同办公平台,其智能排班功能凭借与组织架构、考勤、审批等模块的深度打通,正在被越来越多的企业采用。本文将系统梳理钉钉智能排…

作者头像 李华
网站建设 2026/8/30 8:08:42

离线翻译怎么做?Argos Translate 四条命令完成本地机器翻译部署

离线翻译怎么做?Argos Translate 四条命令完成本地机器翻译部署 【免费下载链接】argos-translate Open-source offline translation library written in Python 项目地址: https://gitcode.com/GitHub_Trending/ar/argos-translate 处理客户合同或医院病历最…

作者头像 李华