Python爬虫:爬取instagram,破解js加密参数
instagram 是国外非常流行的一款社交网站,类似的还有像facebook、twitter,这些社交网站对于掌握时事热点、电商数据来源和竞争对手的动态信息的把我都是很有数据价值的,所以值钱的数据谁都想获取,那就意味着谁都想保护,那么下面就来聊一聊怎么爬取ins的信息。

一、需求分析:
爬取instagram这个用户的图片、评论数、点赞数、文章内容,存为Json格式

二、站点分析:
首先自行准备翻墙工具,准备好以后,打开instagram官方账号,同时按下F12,如下所示:

切换到network选项,随便选择一张图片的url,全局搜索,如下图:

可以发现:instagram把数据写到了script标签里面,这是一种常见的做法,放到js里面去加载,所以我们需要用到正则表达式去做匹配:

解释一下:首先爬取首页的数据,然后正则表达式匹配script标签传来的后台数据,转换成json格式,同时还需要找出user_id和GIS_rhx_gis参数(破解js加密需要用到),最后解析数据。

爬取完首页以后,我们就要爬取下一页的数据了,可以发现下一页的数据是ajax异步加载的方式,返回的是json格式的数据,如下图:

请求的url格式为:

"https://www.instagram.com/graphql/query/?query_hash=5b0222df65d7f6659c9b82246780caa7&variables=%7B\"id\"%3A\"{id}\"%2C\"first\"%3A12%2C\"after\"%3A\"{end_cursor}\"%7D"
复制代码
经过我测试,发现必须要带上 x-instagram-gis这个参数,否则会报 403 forbideen错误,这是ins的反爬虫机制:

那么如何生成这个参数呢?全局搜索,找到这个参数的js文件,复制一份拷贝到本地,我用的是Pycharm,一路追踪过去,可以找到生成这个参数的方法,我总结为:

1. 从用户首页https://www.instagram.com/instagram/获取user_id、rhx_gis、end_cursor参数
2. variables = '{"id":"' + id + '","first":12,"after":"' + end_cursor + '"}',对 params = rhx_gis + ":" + variables进行md5加密
3. headers加入"x-instagram-gis": params,即可进行抓取
复制代码

生成这个参数以后,我们就可以下一页的抓取了~

三、源码:
github.com/Mrrrrr10/In…

Python爬虫:爬取instagram,破解js加密参数相关推荐

  1. python爬虫爬取大众点评店铺简介信息

    python爬虫爬取大众点评店铺简介信息 写作目的: 爬取目标 大众点评的保护机制 应对方法 还存在的问题 写作目的: 今天帮朋友一个忙,要爬取一些大众点评上的数据.结果发现大众点评的防爬机制还挺多的 ...

  2. 使用Python爬虫爬取网络美女图片

    代码地址如下: http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip instal ...

  3. 四小时学python爬虫爬取信息系列(第一天)

    四小时学python爬虫爬取信息系列(第一天)(全是干货) 1.安装requests库(可以在电脑python,我是进入anaconda我建的虚拟环境) anaconda虚拟环境法流程: conda ...

  4. Python爬虫爬取微信朋友圈的方法,感兴趣的朋友可以了解下

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 小雨 | 作者 python教程 | 来源 接下来,我们将实现微信朋友圈的 ...

  5. python爬虫爬取网易云音乐歌曲_Python网易云音乐爬虫进阶篇

    image.png 年前写过一篇爬网易云音乐评论的文章,爬不了多久又回被封,所以爬下来那么点根本做不了什么分析,后面就再改了下,加入了多线程,一次性爬一个歌手最热门50首歌曲的评论,算是进阶版了- 思 ...

  6. Python爬虫---爬取腾讯动漫全站漫画

    Python爬虫---爬取腾讯动漫全站漫画 操作环境 网页分析 明确目标 提取漫画地址 提取漫画章节地址 提取漫画图片 编写代码 导入需要的模块 获取漫画地址 提取漫画的内容页 提取章节名 获取漫画源 ...

  7. Python爬虫爬取微信朋友圈

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.op-kg.com/ ...

  8. python爬虫——爬取搜狗影视热门电视剧

    python爬虫--爬取搜狗影视热门电视剧 1.结果图 2.这次爬取的网址请点击传送门 搜狗影视热门电视剧 3.先构建请求头,请求头直接复制过来 4.接下来先请求这条url,通过format方法实现对 ...

  9. python爬虫——爬取马蜂窝景点翻页文字评论

    python爬虫--爬取马蜂窝景点翻页文字评论 使用Chrome.python3.7.requests库和VSCode进行爬取马蜂窝黄鹤楼的文字评论(http://www.mafengwo.cn/po ...

最新文章

  1. NAT技术解决了IPv4地址短缺的问题,假设内网的地址数是m,而外网地址数n,若mn,则这种技术叫做(66),若mn,且n=1,则这种技术这叫做(67)。【答案】A C
  2. java绘制_Java 绘制简单图形的问题
  3. Android官方开发文档Training系列课程中文版:创建自定义View之View的创建
  4. 程序、线程、进程的区别(python、Java举例)
  5. 别把数据当成万金油,如何用OKR搞垮一个团队?
  6. 免费UNIX体验中心
  7. 计算机报警声 一高一低,有报警声电脑问题怎么处理 有报警声电脑问题处理方法【介绍】...
  8. linux初始化驱动程序,linux驱动程序什么时间初始化
  9. 【Love2d从青铜到王者】第八篇:Love2d之多个文件和作用域范围
  10. gazebo中计算理想相机模型的fx fy
  11. 如何录屏?电脑屏幕录制软件哪个好?
  12. 软件工程专业就业方向
  13. android 杀进程推送服务,关于APP进程被杀死,极光推送收不到消息的解决办法
  14. 儿童护眼灯怎么选?儿童护眼灯品牌排行榜
  15. 视频教程-OpenGLES萌谷手册(iOS2018版)-其他
  16. shopee海外仓如何申请及 收 费 标 准
  17. 快手java商业化_快手-商业化-日常实习-一面-凉经+吐槽
  18. PHP为什么只能提交数字到mysql写入_请教高手?php为什么不能把数据写入数据库?...
  19. 计算机三级信息安全技术常考知识点总结
  20. 剪绳子 算法_算法-14.1.剪绳子

热门文章

  1. 蚂蚁金服亿级并发下的移动端到端网络接入架构解析
  2. docker-compose 运行 Flask 应用最佳实践
  3. 光伏等新能源信用风险事件频繁爆发
  4. 浙江嘉兴“网事”再添国字招牌 领跑城市智慧转型
  5. 李洪强经典面试题37
  6. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑
  7. nginx启动与停止
  8. PHP开发框架[国内框架]
  9. select 查询例子集
  10. jQuery css