一行指令下載 Instagram 的所有照片 (逐步圖解教學)

如果想要批次下載 ig 上面的所有照片和影片你會怎麼做?在 chrome 或 firefox 的線上應用程式找半天安裝完成後才發現一個都沒有辦法批次下載?又或是使用第三方線上網站幫忙?但是也是要註冊會員才能一次下載那麼幾張?或許,你可以試試看 Instaloader

Instaloader 是一款由 python 撰寫的開源第三方工具,能夠方便的下載 Instagram 上面的圖片、資料、文字內容、IGTV 等等幾乎所有的資料都可以下載。或許那些需要你註冊才讓你多下載幾張照片的網站也是利用這個開源工具。

蛤?python?那是不是很難?不是還要什麼 pip 什麼安裝環境、安裝套件還要什麼設定檔弄半天才有辦法開始下載?不用擔心,只要下載執行檔之後輸入一行程式碼就可以了,完全沒有任何難度!

首先開啟 Instaloader 的 Github 頁面,點選 Releases 下面最新的版本(數字可能會和筆者的不一樣)

點選下面執行檔的壓縮檔來下載

解壓縮後會像這個樣子

在路徑欄上面輸入 cmd 之後按下 Enter

假設我想要爬取 G.E.M.鄧紫棋 的 instagram 資料,只要知道他的 id 是 "gem0816",使用下面這行程式碼就可以了:
    
instaloader.exe gem0816
    


剛剛的資料夾裡面就會多出一個以 id 為名稱的資料夾

裡面會有許多檔案,包括圖片,貼文,貼文資料

如果不想要貼文資訊的話可以加上 --no-metadata-json
    
instaloader.exe gem0816 --no-metadata-json
    

如果再不要 txt 文件的話可以再加上 --no-captions
    
instaloader.exe gem0816 --no-metadata-json --no-captions
    

但畢竟只是第三方提供的工具,所以可能會遇到數量限制(短時間發出大量請求,只要過一段時間應該就可以)或是需要登入(沒有登入的話 Instagram 只能顯示一部分照片)

要登入的話可以使用:
    
instaloader.exe gem0816 --no-metadata-json --no-captions --login YOUR-USERNAME --password YOUR-PASSWORD
    

那會這些有什麼用呢? 例如我可以爬取所有 hashtag(標記) "Taiwan" 的貼文
    
instaloader.exe "#taiwan"
    

還可以使用 --stories 下載使用者的故事 --tagged 下載被標記的內容 --igtv 下載 IGTV --geotags 下載標記的地點,使用 --post-filter 來限制貼文日期等等,直接開始研究這幾年疫情對旅遊(一般使用者去旅遊有極大的機率 PO 並標記地點),探討各式節日例如音樂節讓附近的 po 文數量增加多少等等,有無窮無盡的議題可以研究和分析。

註:因為本文是主要面向初次使用的使用者,故採用最簡單的下載執行檔和直接下指令執行。如果需要進階的分析建議直接使用 python 爬取,不用下載到本機。本次介紹的 Instaloader 工具是在 Github 上開源的,任何人皆可取用。工具沒有對錯,只有使用人的善惡,照片和內容等也是有著作權,請小心使用,以免觸犯法律!

參考資料:Instaloader 官方說明文件

延伸閱讀: Windows 11 插入表情符號 Emoji、顏文字、特殊符號

留言

  1. 感謝教學,這東西未免太方便

    回覆刪除
  2. 為甚麼輸入對的密碼永遠都是錯的

    回覆刪除
    回覆
    1. 有可能是因為爬的太過頻繁,使用網頁開啟 Instagram 並登入,有可能會提示需要更新密碼

      刪除
  3. 可惜了,win7執行會發生錯誤,Python版本過高

    回覆刪除
  4. 想請教輸入帳密的代碼還能使用嗎?
    --login YOUR-USERNAME --password YOUR-PASSWORD

    把YOUR-USERNAME與YOUR-PASSWORD 換成帳密這樣的方法正確嗎?

    回覆刪除

張貼留言

如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com