当前位置:   article > 正文

Python Headless Chrome(无头谷歌浏览器)_python无头浏览器

python无头浏览器

1、什么是Headless Chrome

在我们使用Selenium驱动ChromeDriver时,可以弹出谷歌浏览器,模拟人为操作谷歌浏览器,这就是自动化测试。虽然很厉害,但是也有一个很现实的问题,因为是要真实加载完整网页,导致效率低。在自动化测试时,我们其实只需要知道是测试完成还是未完成,至于能否看到完整的UI对我们来说是不重要的,那Headless Chrome就是谷歌为此类需求定制的无UI浏览器,因为 UI 需要 CPU 和 RAM 开销,所以Headless Chrome会快很多。

先说下演示环境:

OS:Mac

Python:3.11.1

Chrome:111.0.5563.110

Selenium:4.8.3

2、不使用Headless Chrome

使用的功能:

  • webdriver.Chrome():返回一个 Chrome 驱动程序的实例,我们将通过它与 Chrome 浏览器进行交互。 
  • driver.get(url):向浏览器发送信号以获取指定的URL。 
  • driver.close():向浏览器发送信号以关闭自身。 
  • time.sleep(n):其中 n 是一个整数。将在指定的秒数内暂停脚本执行。我们需要它给我们时间来查看浏览器是否确实在运行。
  1. import time
  2. from selenium import webdriver
  3. # 初始化浏览器
  4. driver = webdriver.Chrome()
  5. # 访问网页
  6. driver.get('https://www.baidu.com')
  7. # 睡眠5秒
  8. time.sleep(5)
  9. # 关闭浏览器
  10. driver.close()

效果:

3、驱动Headless Chrome

在这里,我们将使用无头自动化浏览器,因为我们将使用此功能:

  • webdriver.Chrome():返回一个 Chrome 驱动程序的实例,我们将通过它与 Chrome 浏览器进行交互。
  • Options():通过这个类的属性我们可以发送浏览器启动参数。在我们的例子中,它是options.add_argument("--headless")它将启动没有 UI(无头)的浏览器。
  • driver.get(url):向浏览器发送信号以获取指定的URL。
  • print(driver.title):将网页标题打印到我们运行脚本的终端中。 
  • driver.close():向浏览器发送信号以关闭自身。 
  1. from selenium import webdriver
  2. from selenium.webdriver.chrome.options import Options
  3. # 配置选项
  4. options = Options()
  5. # 设置使用无头浏览器
  6. options.add_argument("--headless")
  7. # 初始化浏览器
  8. driver = webdriver.Chrome(options=options)
  9. # 访问网页
  10. driver.get('https://www.baidu.com')
  11. # 打印标题
  12. print(driver.title)
  13. # 关闭浏览器
  14. driver.close()

4、选项

在需要频繁更新URL的脚步中,可以配置不加载图片等,可以加快速度

  1. from selenium.webdriver.chrome.options import Options
  2. # 配置选项
  3. options = Options()
  4. # 设置使用无头浏览器
  5. options.add_argument("--headless=new")
  6. # 禁用gpu加速
  7. options.add_argument("--disable-gpu")
  8. # 禁止浏览器被监控提示
  9. options.add_experimental_option("excludeSwitches", ["enable-automation"])
  10. # 不自动关闭浏览器
  11. options.add_experimental_option('detach', True)
  12. # 设置请求头user-agent
  13. options.add_argument("--user-agent=''")
  14. # 设置窗口最大化
  15. options.add_argument('--start-maximized')
  16. # 设置窗口大小
  17. options.add_argument('--window-size=200,200')
  18. # 无痕模式
  19. options.add_argument('--incognito')
  20. # 隐藏滚动条
  21. options.add_argument('--hide-scrollbars')
  22. # 禁用js
  23. options.add_argument('--disable-javascript')
  24. # 不加载图片(拦截图片)
  25. options.add_argument('--blink-settings=imagesEnabled=false')

 所有选项可以看这里:

https://peter.sh/experiments/chromium-command-line-switches/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/90273
推荐阅读
相关标签
  

闽ICP备14008679号