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

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,了,建议使用火狐或者谷歌无界面浏览器。

解决方案
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参数。

前提条件:

  • 本地安装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()

Selenium+Headless Chrome
与Firefox类似,双手奉上。

前提条件:

  • 本地安装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()

如上,完美解决~
————————————————
版权声明:本文为CSDN博主「小洋人最happy」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010358168/article/details/79749149

from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

def main():
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument('log-level=3')  # 设置chromedriver的日志级别
    driver = webdriver.Chrome(chrome_options=chrome_options)
    driver.get("https://y.qq.com/portal/search.html#page=1&searchid=1&remoteplace=txt.yqq.top&t=song&w=%E5%91%A8%E6%9D%B0%E4%BC%A6")
    time.sleep(10)
    print(driver.page_source)
    soup = BeautifulSoup(driver.page_source,'html.parser')
    title = soup.find(class_='mod_intro__base').find(class_='mod_intro__title').text
    print(title)

    driver.close()
if __name__ == '__main__':
    main()

 

发表评论

邮箱地址不会被公开。 必填项已用*标注