日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python爬虫:爬取instagram,破解js加密参数

發(fā)布時間:2025/3/11 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python爬虫:爬取instagram,破解js加密参数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Python爬蟲:爬取instagram,破解js加密參數(shù)
instagram 是國外非常流行的一款社交網(wǎng)站,類似的還有像facebook、twitter,這些社交網(wǎng)站對于掌握時事熱點、電商數(shù)據(jù)來源和競爭對手的動態(tài)信息的把我都是很有數(shù)據(jù)價值的,所以值錢的數(shù)據(jù)誰都想獲取,那就意味著誰都想保護,那么下面就來聊一聊怎么爬取ins的信息。

一、需求分析:
爬取instagram這個用戶的圖片、評論數(shù)、點贊數(shù)、文章內(nèi)容,存為Json格式

二、站點分析:
首先自行準備翻墻工具,準備好以后,打開instagram官方賬號,同時按下F12,如下所示:


切換到network選項,隨便選擇一張圖片的url,全局搜索,如下圖:


可以發(fā)現(xiàn):instagram把數(shù)據(jù)寫到了script標簽里面,這是一種常見的做法,放到js里面去加載,所以我們需要用到正則表達式去做匹配:


解釋一下:首先爬取首頁的數(shù)據(jù),然后正則表達式匹配script標簽傳來的后臺數(shù)據(jù),轉換成json格式,同時還需要找出user_id和GIS_rhx_gis參數(shù)(破解js加密需要用到),最后解析數(shù)據(jù)。

爬取完首頁以后,我們就要爬取下一頁的數(shù)據(jù)了,可以發(fā)現(xiàn)下一頁的數(shù)據(jù)是ajax異步加載的方式,返回的是json格式的數(shù)據(jù),如下圖:


請求的url格式為:

"https://www.instagram.com/graphql/query/?query_hash=5b0222df65d7f6659c9b82246780caa7&variables=%7B\"id\"%3A\"{id}\"%2C\"first\"%3A12%2C\"after\"%3A\"{end_cursor}\"%7D"
復制代碼
經(jīng)過我測試,發(fā)現(xiàn)必須要帶上 x-instagram-gis這個參數(shù),否則會報 403 forbideen錯誤,這是ins的反爬蟲機制:


那么如何生成這個參數(shù)呢?全局搜索,找到這個參數(shù)的js文件,復制一份拷貝到本地,我用的是Pycharm,一路追蹤過去,可以找到生成這個參數(shù)的方法,我總結為:

1. 從用戶首頁https://www.instagram.com/instagram/獲取user_id、rhx_gis、end_cursor參數(shù)
2. variables = '{"id":"' + id + '","first":12,"after":"' + end_cursor + '"}',對 params = rhx_gis + ":" + variables進行md5加密
3. headers加入"x-instagram-gis": params,即可進行抓取
復制代碼

生成這個參數(shù)以后,我們就可以下一頁的抓取了~

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

總結

以上是生活随笔為你收集整理的Python爬虫:爬取instagram,破解js加密参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。