【爬蟲筆記】Python Selenium Webdriver異常問題集

python_selenium_error

在開發 Python Selenium 爬蟲遇到了不少坑,花了很多時間找問題和解決方法,所以記錄一下,希望遇到相同問題的人有幫助

Python Selenium Webdriver 異常記錄

發生 selenium.common.exceptions.TimeoutException 問題:

可以在 driver 這邊設定 timeout 超時時間

 發生 ConnectionResetError: [Errno 104] Connection reset by peer 問題:

發生 NameError: name ‘NoSuchElementException’ is not defined 問題:

如何清除殭屍線程

  • ps 是拿到所有到 processes
  • grep 是篩選出 webdriver
  • awk 是拿到PID
  • kill 是殺掉所有列出的PID
關於清除殭屍線程,我通常是在爬完100次頁面後,會固定清除一次如下:

2019/12/23補充:

爬取高鐵票券問題:

最近朋友問說在學習爬取高鐵票券系統時,已經有帶 User agent 為何還是會被判定為權限不足,最後發現 Chrome 在最新版本會在瀏覽器頂部顯示 ” Chrome正在由自動軟體測試控制”,目前的解法是加上'excludeSwitches'的選項。

關於更多 selenium 參數可以參考這篇:selenium启动Chrome配置参数问题

2020/02/14補充:

Selenium 不開啟瀏覽器模式,爬取資料失敗

最近有朋友問說使用 selenium 爬蟲正常可以抓到 50 筆資料,但加上 options.add_argument(“–headless”) 不開啟瀏覽器的無頭模式就只剩 3筆資料。

原因很簡單,因為他有使用到 scroll_height 讓視窗滾動的部分,而他設定的視窗大小是 driver.maximize_window() 視窗最大化

這時候只需要將修改瀏覽器大小 window-size=1920,1080 設定,即可正常運行

最後~

▍關於 Selenium 相關其他文章,可以參考:

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

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

那麼有關於【爬蟲筆記】Python Selenium Webdriver 異常問題集 的介紹就到這邊告一個段落囉!有任何問題可以在以下留言~

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

在〈【爬蟲筆記】Python Selenium Webdriver異常問題集〉中有 1 則留言

  1. 你好,關於python這問題,我很好奇,為什麼
    為什麼selenium要用from selenium import webdriver 不能使用import selenium就好?
    webdriver 不是selenium的一部分?
    我始終搞不太懂from import和import的差別,原本以為搞懂了,看到selenium又不懂了……

發佈留言

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