INS爬虫
最近有很多朋友发邮件和私信询问ins爬虫的问题,我重新去看了一下,然后把新版更新了一下。
还有由于tls指纹,我讲请求的第三方库调整为tls_client模拟浏览器调用。
出现问题的主要原因是请求头的参数提取有问题,新版的请求头已经不是原来的那个样子了,这样会导致请求的返回是
{'message': 'useragent mismatch', 'status': 'fail'}
我们修改请求头后就可以得到准确的返回结果
{
"biography": "",
"username": "renebaebae",
"fbid": "17841419632210822",
"full_name": "IRENE",
"id": "19446582407",
"followed_by": 11689096,
"follow": 4,
"avatar": "https://scontent-nrt1-1.cdninstagram.com/v/t51.2885-19/69067759_957976681207922_446652332218777600_n.jpg?stp=dst-jpg_s320x320&_nc_ht=scontent-nrt1-1.cdninstagram.com&_nc_cat=1&_nc_ohc=lqyt1uLD7bkQ7kNvgElH_Vc&_nc_gid=da9e9a13bbbb40afb7ca800ef16e8ded&edm=AOQ1c0wBAAAA&ccb=7-5&oh=00_AYDS_6vHqjNGgGPP1uGP2VCpuzkcf-UR4zaatJ_IPdTFJg&oe=66F7168F&_nc_sid=8b3546",
"noteCount": 165,
"is_private": false,
"is_verified": true
}
cookie的样例
还有部分朋友不知道cookie的格式,这里我也把cookie的格式贴下:
{
"wd": "",
"dpr": "",
"mid": "",
"datr": "",
"ig_did": "",
"ig_nrcb": "",
"ps_l": "1",
"ps_n": "1",
"csrftoken": "",
"ds_user_id": "",
"sessionid": "",
"shbid": "",
"shbts": "",
"rur": ""
}
大概需要这些内容,简单的方法是把页面的cookie字符串贴下,然后找一个在线转化的转为python的字典即可。
代理
还有一部分朋友询问代理如何添加,这里我也将代理抽离到全局进行添加了
proxy = {
"http": "http://127.0.0.1:17890",
"https": "http://127.0.0.1:17890",
}
按照python的格式修改即可
原始代码
完整代码可见github或者我的博客
https://www.xsblog.site/post/14
https://github.com/xishandong/crawlProject/blob/main/%E8%BF%9B%E9%98%B6%E7%AF%87/%E5%9F%BA%E7%A1%80%E7%BB%BC%E5%90%88/Instagram/downloader.py
是否需要添加cookie
类型 | 是否需要cookie |
---|---|
user_info | ❌ |
post | ✅ |
comment | ✅ |