Selenium+PhantomJS使用時報錯緣由及解決方案

問題
今天在使用selenium+PhantomJS動態抓取網頁時,出現以下報錯信息:web

UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '

翻譯過來就是:chrome

selenium已經放棄PhantomJS,了,建議使用火狐或者谷歌無界面瀏覽器。

  

解決方案
selenium版本降級
經過pip show selenium顯示,默認安裝版本爲3.8.1。
將其卸載pip uninstall selenium,從新安裝並指定版本號pip install selenium==2.48.0。
再次運行,發現沒有報錯,搞定!瀏覽器

使用無界面瀏覽器
Selenium+Headless Firefox
Selenium+Headless Firefox和Selenium+Firefox,區別就是實例option的時候設置-headless參數。less

前提條件:
- 本地安裝Firefox瀏覽器
- 本地須要geckodriver驅動器文件,若是不配置環境變量的話,須要手動指定executable_path參數。spa

示例代碼:firefox

from selenium.webdriver import Firefox from selenium.webdriver.firefox.options import Options def main(): options = Options() options.add_argument('-headless') driver = Firefox(executable_path='./geckodriver', firefox_options=options) driver.get("https://www.qiushibaike.com/8hr/page/1/") print(driver.page_source) driver.close() if __name__ == '__main__': main() Selenium+Headless Chrome

與Firefox相似,雙手奉上。翻譯

前提條件:
- 本地安裝Chrome瀏覽器
- 本地須要chromedriver驅動器文件,若是不配置環境變量的話,須要手動指定executable_path參數。code

示例:blog

from selenium import webdriver from selenium.webdriver.chrome.options import Options def main(): chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') driver = webdriver.Chrome(executable_path='./chromedriver', chrome_options=chrome_options) driver.get("https://www.baidu.com") print(driver.page_source) driver.close() if __name__ == '__main__': main()
相關文章
相關標籤/搜索