抓个请求,试试错, easy

首先祭出参考链接:https://stackoverflow.com/questions/49265339, 站在前人的肩膀上完成的任务

爬取指定帖子

如果你想爬取某一个指定帖子中的图片或视频, 很简单!而且目前还是失效,直接在 url 后面加?__a=1即可获取到 json 数据

例如:

https://www.instagram.com/p/BejRyk4njXV/ 这是原链接

https://www.instagram.com/p/BejRyk4njXV/?__a=1 这是 json 数据

爬取某个用户的所有 ins 信息

这个算是本文重点吧,其实搞清楚 ins 那边需要什么就可以搞定了.

直接扒网页源码获取到 userid, 正则"profilePage_\d+"匹配就能获取到 id为259220806,此时还需要记一下 csrftoken这个 cookie 值

要请求的url 为https://www.instagram.com/accounts/login/ajax/

需要 post 三个参数

username:你的用户名

password: 你的密码(明文~~震惊)

queryParams: {}

以上可以通过浏览器抓包网络请求看到,如果以后更新了方法大同小异

接着传入几个关键的 header 信息

User-Agent: 填浏览器 ua 即可 Referer: https://www.instagram.com/ x-csrftoken: 第一步获取到的值 Content-Type: application/x-www-form-urlencoded 这一个可有可无

登陆成功后记录下来到返回的 key 为sessionid的 Cookie 值

获取用户 ins 的 api 为

https://www.instagram.com/graphql/query/?query_hash=472f257a40c653c64c666ce877d59d2b&variables={"id"259220806:,"first":10,"after":"XXXXXXXX"}

query_hash: 用上面那一串就行,以后不能用在研究

id 替换成你想要爬取的人的 id

first是需要返回几条数据

after是从什么地方开始返回, 用于获取下一页的情况,传 json 中的end_cursor即可获取下一页的数据

返回的 json 中,主要数据在edges节点下面, 遍历即可