Selenium最新版本再也不支持PhantomJS

Selenium最新版本再也不支持PhantomJS

2018年09月19日 15:07:45 czbuyi 閱讀數:600git

今天想對《自動讀取單位某系統數據》一文中的項目作些優化,將Selenium+firefox改成無界面的PhantomJS,出現以下錯誤:github

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 ' 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 '

 

百度:意思是說Selenium再也不支持PhantomJS,請用無界面版本的chrome或firefox代替。web

  • 完美解決方法轉發自這個博客:Selenium+PhantomJS使用時報錯緣由及解決方案
  • 在使用webdriver驅動器文件時,建議仍是將其解壓至某個目錄,再手動指定executable_path參數,免得去設置環境參數(主要是由於個人mac裏設置後老是不能用)。

使用無界面瀏覽器

Selenium+Headless Firefoxchrome

Selenium+Headless FirefoxSelenium+Firefox,區別就是實例option的時候設置-headless參數。瀏覽器

前提條件:less

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

示例代碼:優化

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() 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 Chromegoogle

Firefox相似,雙手奉上。spa

前提條件:.net

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

示例:

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()

若是本文對您有幫助,請給我留個言。謝謝!

相關文章
相關標籤/搜索