Selenium+PhantomJS使用时报错原因及解决方案

超、凢脫俗 2022-05-28 04:58 286阅读 0赞

问题

今天在使用selenium+PhantomJS动态抓取网页时,出现如下报错信息:

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

翻译过来就是:

  1. selenium已经放弃PhantomJS,了,建议使用火狐或者谷歌无界面浏览器。

解决方案

selenium版本降级

通过pip show selenium显示,默认安装版本为3.8.1
将其卸载pip uninstall selenium,重新安装并指定版本号pip install selenium==2.48.0
再次运行,发现没有报错,搞定!

使用无界面浏览器

Selenium+Headless Firefox

Selenium+Headless FirefoxSelenium+Firefox,区别就是实例option的时候设置-headless参数。

前提条件:
- 本地安装Firefox浏览器
- 本地需要geckodriver驱动器文件,如果不配置环境变量的话,需要手动指定executable_path参数。

示例代码:

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

Firefox类似,双手奉上。

前提条件:
- 本地安装Chrome浏览器
- 本地需要chromedriver驱动器文件,如果不配置环境变量的话,需要手动指定executable_path参数。

示例:

  1. from selenium import webdriver
  2. from selenium.webdriver.chrome.options import Options
  3. def main():
  4. chrome_options = Options()
  5. chrome_options.add_argument('--headless')
  6. chrome_options.add_argument('--disable-gpu')
  7. driver = webdriver.Chrome(executable_path='./chromedriver', chrome_options=chrome_options)
  8. driver.get("https://www.baidu.com")
  9. print(driver.page_source)
  10. driver.close()
  11. if __name__ == '__main__':
  12. main()

如上,完美解决~

发表评论

表情:
评论列表 (有 0 条评论,286人围观)

还没有评论,来说两句吧...

相关阅读