RD.TW
Published in

RD.TW

爬蟲實戰:怎樣爬到 Instagram 的資料

爬蟲怎麼爬

Updates: 2022/01/26

初探

instagram hashtag taipeicafe

instagram 取得 hashtag 的請求

Talk is cheap, show me the code

fetch('https://www.instagram.com/explore/tags/taipeicafe/?__a=1')
.then(res => res.json())
.then(res => console.log(res));
Instagram 請求 hashtag 的結果
Hashtag 下的貼文結構

取得貼文詳細內容

點擊貼文後的畫面
fetch('https://www.instagram.com/p/B-Y85rNp-OY/?__a=1')
.then(res => res.json())
.then(res => console.log(res));
shortcode 下的資料結構
// ( •́ _ •̀) ????
// B-Y85rNp-OY
fetch('https://www.instagram.com/p/B-Y85rNp-OY/?__a=1')
.then(res => res.json())
.then(res => console.log(res));
Bingo!!
小瑜開心的玩了ㄧ下
https://www.instagram.com/username/?__a=1

挫折的轉折

頁面翻頁加載時需要的參數
tag_name 好理解
first ???
after ????
let queryObj = {
query_hash: '加密後的Hashcode',
variables: {
tag_name: '標籤名稱',
first: '每次請求數量',
after: '這次請求要接在哪個之後'
}
}
  1. first 跟請求數量有一定關係但不是等號且請求數量有限制 (FB上世修大大提到 first 代表的是行數,一行三個所以數量約略是 first*3)
  2. after 所代表的 end_cursor 跟 post 本身有一定關係但也不是等號,有可能是利用 post 裡 shortcode 加密後算出來的 hashcode。

--

--

海外求生的工程師

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store