前言

某天朋友说,能不能帮忙扒下ins的博主帖子,要所有帖子的点赞和评论,我本来准备让会python的同事写的,最后还是自己顺手写了,本来一开始准备用nodejs或者js写的,想着前端本地测试代理和导excel比较麻烦还是用Java吧,正好好久没写Java了,就当回忆一波吧。

注意点

ss梯子大家自己准备好,不然连不上ins的,还有ins的一些反扒规则等等我就不一一列举了,
下面说下大概的几个点:

  • instagram的首页数据是
    服务端渲染的,所以首页出现的11或12条数据是以html中的一个json结构存在的(additionalData),之后的帖子加载才是走ajax请求的。

  • 在2019/06之前,ins是有反爬机制的,请求时需要在请求头加了’X-Instagram-GIS’字段。其算法是:吧啦吧啦吧啦,,,,但是在在2019/06之后, instagram已经取消了X-Instagram-GIS的校验,所以无需再生成X-Instagram-GIS,上一点内容可以当做历史来了解了

  • 关于query_hash,一般这个哈希值不用怎么管,可以直接写死

  • 特别注意:在每次请求时务必带上自定义的header,且header里面要有user-agent,这样子才能使用rhx_gis来进行签名访问并且获取到数据。切记!是每次访问!
    例如:

  headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'}
  • api的分页(请求下一页数据),如用户帖子列表,大概就是下页的参数再上一页的page里面,
    ins中一个带分页的ajax请求,一般请求参数会类似下面:
query_hash: a5164aed103f24b03e7b7747a2d94e3c
variables: {"id":"1664922478",
"first":12,
"after":"AQBJ8AGqCb5c9rO-dl2Z8ojZW12jrFbYZHxJKC1hP-nJKLtedNJ6VHzKAZtAd0oeUfgJqw8DmusHbQTa5DcoqQ5E3urx0BH9NkqZFePTP1Ie7A"}

– id表示用户id,可在html中的sharedData中获取
– first表示初始时获取多少条记录,好像最多是50
– after表示分页游标,记录了分页获取的位置

大概思路

1,前12条数据只能能html里面解析。
2,后面的分页数据都可以走http请求。
3,关于分页,第一次的分页参数也在html里面,后面的分页参数都在上一个请求结果里面。
4,所以思路就是先获取ins的html从里面截取前12条数据和第一次的分页参数,后面再循环分页请求就行。
5,最后汇总导出excel,完事。

代码截图

效果

这里我选了范冰冰的ins导出,毕竟上面都是老外,其他人咋也不认识。。。。

  • 范冰冰ins首页:
  • 导出excel:

GitHub

最后附上GitHub地址,对大家有帮助就start吧。。。欢迎star和PR~ 感谢泥萌!!

https://github.com/BothEyes1993/InsCrawlerTest

Java爬虫Ins博主所有帖子的点赞和评论导出excel相关推荐

  1. java爬虫实战(3):网易云音乐评论,歌曲,歌单,歌词下载

    java爬虫实战(3):网易云音乐评论,歌曲,歌单,歌词下载 *本实战仅作为学习和技术交流使用,转载请注明出处: *此文章很早便在草稿箱中,由于编写时事情较多,临时中断,现暂时发表,后续补上(2019 ...

  2. 爬虫—微博博主动态及相册的请求构造规律

    之前写过一篇selenium爬取微博相册的文章,有朋友私信我说可不可以直接构造请求列表获取,因为selenium有些慢,毕竟每次请求都要等待网页加载渲染完,否则就获取不到那些按钮或输入框. 今天去看了 ...

  3. Java——博主的学习路线

    Java--博主的学习路线 博主本人今年大二下半期,即将进入大三状态,本科读的是计算机科学与技术专业, 但是我接触编程也是从大一开始的,之前也未曾接触太多次电脑,经过两年的成长,我也算成为了一个小小的 ...

  4. 基于JAVA的个人博客论坛系统的设计与实现参考【数据库设计、源码、开题报告】

    在学校开发搭建一个什么项目最有成就感,那肯定就是搭建「个人博客」呀,然后把自己平时的学习笔记写到博客里,这时你的笔记就是**云笔记**,就再也不会出现因为本地文件丢失而感到痛心的事情. 而且,还可以把 ...

  5. Instagram 爱好者必备:如何使用Inscarry浏览器扩展插件批量下载博主内容(照片视频)

    文章目录 一. 介绍 二. 使用 & 演示 三. 原理 & 注意 四. 安装插件 方式一 插件应用市场安装 方式二 本地安装 五. 开启插件 & 登录 一. 介绍 Inscar ...

  6. java 导出excel工具类

    Excel相关处理,导出调用exportExcel(response, list, "用户数据"); import java.io.File; import java.io.Fil ...

  7. Java爬虫-WebMagic爬取博客图片(好色龍的網路觀察日誌)

    WebMagic爬取博客图片 最近在学习java爬虫,接触到WebMagic框架,正好拿我喜爱的博客来练习,希望龙哥(博主)不要责备我~~ 博客链接: 好色龍的網路觀察日誌 ,超级有趣的翻译漫画,持续 ...

  8. 【java】巨菜博主安装jdk为什么每次都失败?

    今天到公司实习第一天,博主兴高采烈地的使用起来的公司配备的电脑,第一步是干啥?当然是安装JDK了,博主平生安装JDK次数数不胜数,但一遍整下来没有任何差错的情况少之又少.今天也不例外,多敲了个空格害我 ...

  9. java 模拟登陆exe_Java简单模拟登陆和爬虫实例---博客园老牛大讲堂

    鉴于有人说讲的不清楚,我这里再详细补充一下:更新日期:2017-11-23 本片文章适合初学者,只简单说了一下爬虫怎么用,和一个简单的小实例.不适合你的就可以不看了.----博客园老牛大讲堂 1.什么 ...

最新文章

  1. 想要学好Go语言的必须知道的一个小技巧
  2. centos php 安装mysql_CentOS 7 安装MySQL+PHP环境
  3. python lxml读写xml
  4. css3中实现摘取金币_用css3实现抽奖转盘里的扇形图
  5. nginx服务器配置/websocket nginx 配置笔记
  6. Asp.Net Core Authentication Middleware And Generate Token
  7. xml转化为kml_借助ogr2ogr工具实现shp文件转换kml格式
  8. perl index和rindex的用法
  9. 加密软件漏洞测试,加密软件漏洞评测系统
  10. 专业生物信息linux系统,Evvail | Bio-Linux:生物信息专用Linux系统 | Omics - Hunter
  11. matlab 股票分时图_利用Matlab读取股市数据
  12. 不用等微信官方!微信圣诞帽,我用Python就能搞定!
  13. 总结100+前端优质库,让你成为前端百事通
  14. CVPR 2019 | 「识面知心」——基于自监督学习的微表情特征表达
  15. 618电商平台鏖战,天猫618才是绝对主场
  16. 华南理工网络教育计算机平时作业,2017年华南理工大学网络教育计算机应用基础平时作业...
  17. Java——一些适合新手练手的Java项目
  18. DingTalk「开发者说」 5分钟开发钉钉应用
  19. 设计数据库时需要考虑的问题
  20. window.location的使用,能查看当前网址的端口等等

热门文章

  1. 树莓和Arduino之间的蓝牙通讯
  2. cocos2dx-lua 圆周运动
  3. 让前端的子弹飞-TypeScript
  4. 灰色 GM(1,1)模型在重庆商品房销售价格预测中的应用
  5. 企业微信SCRM的设计理念是什么?和CRM有什么不同?
  6. 1.JAVA基础汇总
  7. VL102+IT6563替代方案|TYPEC转HDMI带PD方案|AG9311MAQ设计方案
  8. gethostbyname函数用域名或主机名获取IP地址
  9. 测试用例的概念和作用
  10. 手机怎么解决同ip多账号_问道手游:2019搬砖技巧分享,多开养号才是王道,三天肝出月卡...