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 Firefox
chrome
Selenium+Headless Firefox
和Selenium+Firefox
,區別就是實例option
的時候設置-headless
參數。瀏覽器
前提條件:less
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 Chrome
google
與Firefox
相似,雙手奉上。spa
前提條件:.net
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()
若是本文對您有幫助,請給我留個言。謝謝!