歡迎回到 Selenium 動態網頁爬蟲系列文章,本篇文章要和大家分享如何進一步使用 Selenium 爬取 Instagram 貼文讚數&留言數~
更多IG爬蟲系列文章看這裡~
跟著IG潮流來爬蟲-用Selenium帶您自動登入 IG -系列1(附Python程式碼)跟著IG潮流來爬蟲 — 如何爬取IG貼文短連結 — 系列2(附Python程式碼)
為何要爬 Instagram 貼文的讚數與留言數呢?
Instagram 中有許多大大小小的粉絲專頁,在他們發佈的貼文中讚數與留言數一直是行銷人拿來衡量的指數,從中可以了解這些粉絲專頁的經營狀況以及成長趨勢。
接下來,我們就開始教各位如何獲取這些資料吧!!
網頁檢視器概念說明
以 bbcnews 的粉絲專頁為例,https://www.instagram.com/bbcnews/,
我們打開網頁檢視器 (Windows 系統:請按 F12;MacOS 系統:option+command+c) ,可以看到以下視窗,如圖一。
之後點選彈出視窗上方的 Elements,檢視網頁,如圖二所示。
之後再點選旁邊的小鼠標,這時當我們任意的在網頁上滑動,旁邊的灰色網底區塊應該也會跟著移動,如圖三。
若將鼠標移到網站中的任意區塊做點擊,它就會自動幫我們找到鼠標對應區塊的網頁元素!
尋找
由於我們是要爬取 Instagram 的「貼文讚數」與「留言數」,若您很熟悉 Instagram 的介面,應該很輕易就能找到他們所在的位置,如圖四所示,只要將滑鼠移到貼文上方,目標很快地就出現在眼前了!
接下來,您就可以使用剛剛提到的小鼠標功能,將鼠標移至貼文上方點擊,就可以得到貼文區塊的元素,如圖五。
但是這時候會發現,想要的讚數跟貼文數的網頁元素怎麼都找不到呢?
動動您手上的滑鼠,就會發現只要將滑鼠移到貼文上方就會顯現出來了!
如動畫一所示。
但,您可能心中會有個疑問 :
可是我沒有兩隻滑鼠可以用啊!
那我們應該如何才能找到它們的元素呢?
這時候就會使用 Selenium 裡面模擬滑鼠操作的功能 — ActionChains
我們使用 ActionChains 的技巧將「模擬的」滑鼠移到貼文的位置,
就會發現一個包含class = "qn-0x"
的標籤顯現出來了!
這時要小心翼翼地控制自己的滑鼠,在不能滑到 Instagram 頁面的前提下,從剛才顯示出來的標籤,將旁邊的箭頭一一往下點,就可以在如圖六紅框中找出讚數及貼文數隱藏的位置囉!
找出想要的資訊之後,就可以進入程式操作的部分囉~
開始之前,我們先打開 Python3 編輯器和 Chromedriver
若想知道 Chromedriver 是如何運作的,請點以下連結~
- 動態網頁爬蟲第一道鎖 — Selenium教學:如何使用Webdriver、send_keys(附Python 程式碼)
- 動態網頁爬蟲第二道鎖 — Selenium教學:如何使用find_element(s)取得網頁元素(附Python 程式碼)
完成開啟 Chromedriver 並登入之後,就可以開始執行以下的程序了
開始爬取貼文讚數及留言數
首先我們將需要用到的套件import進來,如程式碼 1:
接下來我們進入到粉專的頁面,如程式碼 2:
最後執行底下的程式碼 3 就可以找到貼文的讚數及留言數啦~
以上程式碼解析
接下來為各位做以上程式碼的解析
- 前往特定貼文頁面,如下程式碼。
url = 'https://www.instagram.com/bbcnews/'
browser.get(url) # 前往該網址
url
指的就是您需要爬取資料的網頁連結,使用 browser.get(url)
可以使 webdriver 前往對應的網頁,之後爬取需要的資料。
2. 將鼠標移至想要爬取的貼文上,如下程式碼。
post_url = '/p/CEriQnOMwW9/'
# 找到對應的貼文,鼠標移入
post_elem = browser.find_element_by_xpath('//a[@href="'+str(post_url)+'"]')
action = ActionChains(browser) action.move_to_element(post_elem).perform()
這裡的 post_url
就是想要爬取的貼文短連結,這個部分可以自行做更改,
(短連結形式請依照:‘ /p/貼文編號/ ’)
想要了解貼文短連結如何直接透過 Selenium 爬取的朋友們可以參考此文章
跟著IG潮流來爬蟲 — 如何爬取IG貼文短連結 — 系列2(附Python程式碼)
接下來我們找出該篇貼文的元素 (post_elem),這邊就要使用 Selenium 查找元素的方法:browser.find_element_by_xpath()
。
再透過 ActionChains 的鼠標控制將鼠標移動到貼文上方,讓讚數及留言數的元素能夠被抓出來。
3. 找出讚數及留言數的元素
# 找到需要的網頁元素
n_like_elem = browser.find_elements_by_class_name('-V_eO')
# 取得讚數、留言數
n_like = n_like_elem[0].text
n_comment = n_like_elem[1].text
這時我們再回到網頁元素的地方來觀察,要從哪裡來抓取讚數與貼文數的內容呢?
從圖七中可以發現它們的內容都一樣被包含在class = "-V_e0"
的標籤底下,
那我們就可以輕鬆的一次把它們全部抓下來~
目前為止需要的東西已經到手了,但…還沒完!
如果現在 browser 的畫面中看不到欲爬取的那篇貼文,電腦也是找不到的喔~
Instagram 是一個動態加載的網頁,這就是為何我們必需使用 Selenium 來爬取的用意
那麼,我們應該怎麼解決呢?
find = False
# 不在目前的網頁元素裡,則往下滑,加載新貼文
while not find:
try:
----------------------
取得讚數及留言數的程式內容
----------------------
# 找到之後就可以回傳‘找到了’
find = True
except:
# 找不到就往下滑
scroll = 'window.scrollBy(0,250)'
browser.execute_script(scroll)
continue
這時,可以用一個 「while 迴圈」來重複嘗試抓取的動作,如果找不到貼文的所在位置的話,就將頁面往下滑。
而下滑的方法我們使用 Javascript 中的window.scrollBy()
,
每找一次都將頁面下滑250個像數。
直到找到了就回傳find = True
,電腦就知道「哦~您找到了!」
它就會停止再繼續做下滑的動作。
以上就是爬取 Instagram 貼文讚數與留言數的完整技巧了,
本篇完整的程式碼在此分享給您,讓您也可以增強爬蟲功力~
如果喜歡我的文章,記得幫我拍個手!!
更多Selenium相關文章連結:
- FB 爬蟲可以更簡單-用Selenium自動登入FB-系列1(附Python程式碼)
- 好奇自己FB的互動性指標嗎?!用Selenium爬蟲-搞定貼文按讚數、留言數、分享數-系列2(附Python程式碼)
- 用Selenium爬蟲-抓取FB文章內容、時間-系列3(附Python程式碼)
- 跟著IG潮流來爬蟲-用Selenium帶您自動登入 IG -系列1(附Python程式碼)
- 跟著IG潮流來爬蟲 — 如何爬取IG貼文短連結 — 系列2(附Python程式碼)
作者:黃鈺淇(臺灣行銷研究特邀作者)、鍾皓軒(臺灣行銷研究有限公司創辦人)
您可能有興趣:
📢TMR全新線上直播課程
⛳【直播Workshop-線上實戰講堂】⛳
《用AI進行顧客資料分析與銷售判斷》
🔹直播日期:11/07(六)
🔹直播時間:14:00–17:00
🔹課程詳情:https://bit.ly/2RHOwT6
【課程簡介】
📌Python技法結合商業思維,一步步建立數值化思考能力
📌機器學習分析顧客行為,找出最佳獲利模式
📌輿情數據結合STP策略,洞察潛在藍海市場
📌專業講師實案講解,帶您快速落地應用
💥早鳥價 :$550(7折)
💥兩人以上同行:$500(64折)
(原價:$780)
🏃♂前往報名:https://bit.ly/2RHOwT6
— — — — — — — — — — — — — —
👨🎓TMR為您量身打造「全方位數據課程」
熱門Python程式語言結合全新商業思維,快來終生學習不間斷!
【TMR】 X 【 好學校】
👨💼Python商業全系列數位課程👨💼
#行銷人必學實用Python課程
《 Python 0到1 基礎商業數據分析實戰 》
💥 價格 :3188
👉 從0開始:手把手從頭學習,適合完全沒學過的學員
👉 商業應用全台最多:傳授市面上少見的Python實務應用
👉 網路輿情爬蟲演練:網路輿情商務爬蟲技法
👉 競品分析:競爭價值定位圖找出藍海策略
👉 貨架陳列視覺化:解析行銷策略及廣告預算配置方法
🛒 前往購買:https://hahow.in/cr/python0-1
《 顧客分類大師:Python x RFM 會員經營新觀點 》
💥 價格 :2388
🎯 Python X RFM最佳拍檔,輕鬆鎖定潛(錢)在顧客
不需要出門,在家也能學習專業課程,讓你擁有會員經營的新思維!
本課程以五個面向為您的企業,做更深入的健診:
👉 市場面:以最基本的顧客消費資料(頻率、購買次數),將現有顧客區隔分類。
👉 財務面:計算出在每個顧客身上所賺得毛利,在不同客群中的獲利。
👉 行銷面:藉由 RFM 的分析進行行銷預算重新分配。
👉 產品面:觀察在不同客群中,各個產品的銷售狀況。
👉 顧客回購面:分析顧客的購買週期後,進行精準推薦。
🛒 前往購買:https://hahow.in/cr/rfm-model
《 AI 行銷學:用 Python 機器學習創造商業新價值 》
💥 價格 :3888
👉 全台第一門Python機器學習線上課程
👉 教導你快速理解Logistic Regression, XGBoost, Random Forest商務機器學習模型。
👉 建構老闆或主管們看得懂的模型評估指標,讓精準行銷方案更容易被接受且推出
👉 如何利用機器學習找出消費者心中的重要變數及客樣貌與特徵,做到個體及總體的商品推薦?
👉 如何從數以萬計的消費資料中偵測可能的詐欺名單?
🛒 前往購買:https://hahow.in/cr/python-ml