發表文章

目前顯示的是 9月, 2018的文章

[Python] [網路爬蟲] 用 selenium 不用登入就能爬過 Facebook

圖片
因為某些原因決定來寫個爬蟲,可以計算 FB 某則貼文中某個關鍵字的數量,然後是可以在不登入的情況下使用的。這篇文章記錄了一些要處理、注意的東西,那麼我們就開始吧! 4/2 補 :因為 FB 網頁的原始碼有改動,所以程式碼有作更新,但內文還是舊的,因為重要的步驟都沒變,所以只更新文章底部放的程式碼。 使用 Selenium (搭配 Firefox driver )   首先來個 10 秒入門 Selenium: from selenium import webdriver driver = webdriver.Firefox(executable_path=r'<存放 Firefox driver 的路徑>') # 建立 driver 物件 driver.get(r'<你想爬的網頁>') # 連線至指定的網頁 driver.quit() # 關閉網頁並退出 driver   好的,這個範例應該挺淺顯易懂的,那我們要繼續下去了。 開始爬取 FB 貼文   當你在沒有登入的情況下開啟了一個 FB 貼文,過一小段時間會跳出這樣的畫面:   它擋住了我們要爬的文章!一定要想個辦法除掉 它。   ( 1/21 補 :現在的 FB 好像不會跳出這個大框框了,如果確定沒有的話,就可以跳過下一步) 尋找與等待:By、WebDriverWait   雖然我們迫不及待地想要按下那個「稍後再說」的按鈕,但這個大方塊並不是一開始就存在的,而是過了一段時間才會跳出來,那麼到底是多久呢?  不知道。   那我們要怎麼知道它已經出現了?幸好 selenium 有提供 WebDriverWait 物件,可以使用他來檢查某個條件是否已經達成,我們先看看程式碼: from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as ec from seleni