因为使用Selenium执行爬虫任务时,必须要启动浏览器,浏览器的启动与关闭必然会影响执行效率,并且会干扰到其它操作(本机运行时),所以采用Chrome 浏览器的headless Browser模式完美解决该问题。
- Headless模式
Headless Browser模式是浏览器的无界面状态,即在不打开浏览器界面的情况下使用浏览器。 该模式的好处如下:
1)可以加快web爬虫执行时间,少了真实浏览器加载css,js以及渲染页面的工作。无界面测试要比真实浏览器快的多。
2)可以在无界面的服务器或CI上运行测试,减少了外界的干扰,使自动化测试更稳定。
3)可以更便捷的运行web自动化,编写爬虫、截图等。通常是由编程或者命令行来控制的。
- 基础环境
python:3.10
python的selenium库: 4.3.0
chrome浏览器: 105.0.5148.2
chromedriver下载地址:
镜像下载地址
官方下载地址
注意: 一定要确保chrome浏览器和chromedriver版本对应
- selenium使用Chrome headless模式
from selenium import webdriver
#创建Chrome浏览器设置变量
chrome_options = webdriver.ChromeOptions()
#无界面模式
chrome_options.add_argument('--headless')
#实例化Chrome driver
driver = webdriver.Chrome(executable_path='D:/chromedriver.exe',chrome_options=chrome_options)
#打开百度
driver.get("https://www.baidu.com/")
- ChromeOptions的其他可设置参数
#设置浏览器窗口大小
chrome_options.add_argument('--window-size=1920,1080')
# 添加代理
chrome_options.add_argument("--proxy-server=http://" + ip:port)
# 修改User-Agent
chrome_options.add_argument('user-agent= '你想修改成的User-Agent')
#禁用图片
chrome_options.add_argument('blink-settings=imagesEnabled=false')