【爬蟲筆記】如何在 GoogleComputeEngine 上運行 selenium 爬蟲

selenium_coverphoto

最近在寫將自己的selenium爬蟲程式放在GoogleComputeEngine上運行,環境設置的過程中不小心踩了不少坑,所以決定記錄下這篇,希望提供給之後想在GCP上設定selenium爬蟲的朋友!

如果對GCP或是selenium不熟悉的朋友,建議可以先閱讀以下兩篇文章:

首先在Google Compute Engine上安裝pip

安裝selenium

安裝Chrome瀏覽器

安裝Chrome Driver

  1. 自動安裝Chrome Driver
    • 讓webdriver_manager自動幫你在主機內安裝Chrome Driver的穩定版本,並且會設定好路徑和權限
    • 但是在啟動driver的時候要用ChromeDriverManager().install()來告知路徑

      2. 如果是手動安裝Chrome Driver的朋友

    • 首先到 http://chromedriver.chromium.org/ 下載最新的Chrome版本Driver,並上傳到VM虛擬主機上,如果這時候運行程式的話會噴出permission denied的權限錯誤,這時候在輸入以下指令就會可以執行囉
    • 記得要把剛剛的ChromeDriverManager().install()換成’位置/chromedriver’

以上安裝完就可以運行看看,如果print出google的網頁標題的話,恭喜你代表就成功囉!

以下是我通常還會安裝的library

  • bs4 (美麗的湯)
  • fake_useragent (這可以自動產生useragent)
  • threadpool (用於多線程池)
  • mysql-connector 和 sqlalchemy (是串接Mysql資料庫)

最後相關延伸閱讀:

▍關於與 Concurrency Programming 相關文章,可以參考:

▍關於 Async IO 相關文章,可以參考:

那麼有關於【爬蟲筆記】如何在 GoogleComputeEngine 上運行 selenium 爬蟲 的介紹就到這邊告一個段落囉!有任何問題可以在以下留言~

有關 Max行銷誌的最新文章,都會發佈在 Max 的 Facebook 粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!

在〈【爬蟲筆記】如何在 GoogleComputeEngine 上運行 selenium 爬蟲〉中有 5 則留言

  1. Max您好,我是一名大學生,日前在研究GCP時發現您的網誌覺得內容非常豐富,十分受用!但是當我照著您的教學嘗試在GCP上面安裝Selenium時,卻發現安裝完了要運行時跳出 can’t read /var/mail/selenium,將程式碼放在檔案內直接執行時則是跳出No module named selenium,想請問您知道這個問題如何解決嗎?謝謝!

  2. 我是在 GCE 上使用 f1-micro 的機器,並選用 ubuntu 18.04 LTS 為 OS
    在安裝 Chrome 瀏覽器時,還需要增加以下步驟:
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install chromium-driver
    wget -c https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    sudo dpkg -i google-chrome-stable_current_amd64.deb
    sudo apt-get install
    sudo apt-get install -f

    然後 pythone 程式碼修改成這樣:
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from webdriver_manager.chrome import ChromeDriverManager
    opts = Options()
    opts.add_argument(‘–headless’) #無頭chrome
    opts.add_argument(‘–disable-gpu’)
    driver = webdriver.Chrome(executable_path=ChromeDriverManager().install(),chrome_options=opts)
    driver.get(‘https://www.google.com/’)
    print(driver.title)
    driver.close()

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *