Instagram API
Instagram API
改版後期改用sandbox模式,意思為,所有app要先經過審核才可使用public_content部分,一開始你只可讀取到你自己的content,或是你可以把別人邀請入你的sandbox,之後其同意後你也可以API獲取其資訊,不然都需經過審核才可使用API
1.先到如下網站,註冊帳號
https://www.instagram.com/developer
到Authentication可看獲取Access token的方法
到EndPoints可看使用API的方法
2.其分為兩種存取API的方式
使用三階段(建議此種作法)
client-ID-->code-->access-token
使用兩階段(如沒有server,安全性較低)
client-ID-->access-token
參考如下
https://www.instagram.com/developer/authentication/範例:
之後會跳轉到你填寫的redirect URL 並在網址最後面附上Access-token
爬蟲參數
因為現在API開放少,所以決定直接使用爬蟲方法來使用API
查詢指定tag的所有文章
GET
查詢使用者基本資訊與前幾篇文章
GET
可以查到使用者數字ID、名字、追蹤人數、等等。
查詢使用者文章與動態
Query請求格式
instagram的XHR固定格式如下
query_hash 為發送請求的種類 ( 例如請求加載使用者後續圖片的hash均為
472f257a40c653c64c666ce877d59d2b)variables 為一個json經過urlEncode過的字串
Querystring參數
有兩個參數,query_hash與variables
第一種:
當query_hash為7e1e0c68bbe459cf48cbd5533ddee9d時 (加載使用者推薦好友相關的資訊)
variables參數:
e.g.
第二種:
當query_hash為 472f257a40c653c64c666ce877d59d2b時 (加載使用者文章)
variables參數:
其中first參數代表取初幾張圖,after也為end_cursor,意思為結束的位置,所以越大越好,這樣我們才能一次取出足夠的圖片
after參數建議使用如下
end_cursor可以從上次的query請求中的Response獲得。
e.g.
第三種:
當query_hash為 bf41e22b1c4ba4c9f31b844ebb7d9056 時 (加載使用者動態影片)
reel_ids即為使用者ID
e.g.
取得使用者發佈過的文章圖片
所以現在我們來試著取得使用者的所有文章,首先我們要先知道要查詢的使用者ID
所以我們先使用如下查詢ID
之後我們有了ID
我們可以將下面改為如下查找使用者發表過的文章數量
有了ID與文章數量後我們就可以來拼出參數
我們先拼出querystring
發送請求
注意:如果first參數超過一千以上會產生timeout情況,返回FB錯誤頁面。
接著我們用Async Loop的方式讀取使用者所有圖片
注意事項:
1.2017/10/1號之後只能取得Basic的資訊,其他 API 都不開放了。
https://www.instagram.com/developer/changelog/
2.爬蟲執行過多次後會出現以下錯誤:
解決方法為把first調大,並減少iterate的request次數
3.2019年之後`?__a=1` request要加上cookie才可
從 userid 獲得資料
Last updated
Was this helpful?