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()
若是本文对您有帮助,请给我留个言。谢谢!