所谓浏览器的无头模式headless,就是浏览器在运行时处于后台操作的模式,不会看到浏览器打开,也就不会干扰你手头的工作。对于自动化测试和网络爬虫都有很大的价值。

早期我们使用 phantomJS 浏览器来实现这种模式,随着 Chrome 和 Firefox 都加入了无头模式, Selenium 逐渐停止对 phantomJS 的支持。

Chrome 的 headless

Chrome 的无头模式,通过在打开浏览器前加入 --headless 参数配置即可实现。

from selenium import webdriver

from selenium.webdriver.chrome.options import Options # => 引入Chrome的配置

import time

# 配置

ch_options = Options()

ch_options.add_argument("--headless") # => 为Chrome配置无头模式

# 在启动浏览器时加入配置

driver = webdriver.Chrome(chrome_options=ch_options) # => 注意这里的参数

driver.get('http://baidu.com')

driver.find_element_by_id('kw').send_keys('测试')

driver.find_element_by_id('su').click()

time.sleep(2)

# 只有截图才能看到效果咯

driver.save_screenshot('./ch.png')

driver.quit()

Firefox 的 headless

Firefox 浏览器的无头模式配置与 Chrome 差不多,只是写法有差异。

from selenium.webdriver.firefox.options import Options # => 引入Firefox配置

from selenium import webdriver

import time

# 配置浏览器

ff_options = Options()

ff_options.headless = True # => 设置无头模式为 True

driver = webdriver.Firefox(firefox_options=ff_options) # => 注意这里的参数

driver.get('http://baidu.com')

driver.find_element_by_id('kw').send_keys('测试')

driver.find_element_by_id('su').click()

time.sleep(2)

# 截图看效果

driver.save_screenshot('./ff.png')

driver.quit()

感受一下吧!

python 无头模式_Python + Selenium(二十五)无头模式 headless相关推荐

  1. Python之精心整理的二十五个文本提取及NLP相关的处理案例

    一.提取 PDF 内容 # pip install PyPDF2 安装 PyPDF2 import PyPDF2 from PyPDF2 import PdfFileReader# Creating ...

  2. 【OS学习笔记】二十五 保护模式七:任务和特权级保护对应的汇编源代码

    本汇编代码是以下两篇文章讲解的内容的内核代码; [OS学习笔记]二十三 保护模式七:保护模式下任务的隔离与任务的特权级概念 [OS学习笔记]二十四 保护模式七:调用门与依从的代码段----特权级保护 ...

  3. python爬虫影评_Python爬虫(二十)_动态爬取影评信息

    本案例介绍从JavaScript中采集加载的数据.更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import requests import re import t ...

  4. 设计模式之外观模式php,php设计模式(十五)外观模式

    外观模式又叫门面模式: 现在都是模块化开发了: 开发中很多时候都是在使用各种扩展包: 或者在外观模式中我们叫做子系统: 外观模式的作用就是减少子系统之间的耦合: 降低子系统的使用难度: 我们举个栗子: ...

  5. Python遥感图像处理应用篇(二十五):Python+GDAL 波段组合

    1.使用场景描述 之前使用arcpy python2.7写了一篇进行遥感数据波段组合计算的博文,使用场景是将所有单波段数据放在一个文件夹中(如下图),文件名称前缀一样,后缀波段编号用来区分不同的波段, ...

  6. java沙盒模式_JavaScript学习笔记(二十五) 沙箱模式

    沙箱模式(Sandbox Pattern) 沙箱模式可以避免命名空间的一些缺点(namespacing pattern),比如: 依赖一个唯一全局的变量作为程序的全局符号.在命名空间模式中,没有办法存 ...

  7. Python的内置函数(二十五)、readlines()

    概述 readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理. 如果碰到结束符 EOF 则返回空字符串. ...

  8. python动态捕捉屏幕_python学习(十五) 屏幕抓取

    15.1 屏幕抓取 15.1.1 Tidy和XHTML解析 Tidy:用来修复不规范且随意的HTML文档的工具. 为什么用XHTML: 和旧版本的HTML之间最主要的区别:HTML可能只用一个开始标签 ...

  9. [Python从零到壹] 三十五.图像处理基础篇之OpenCV绘制各类几何图形

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  10. [Python从零到壹] 四十五.图像增强及运算篇之图像灰度非线性变换详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

最新文章

  1. Python 还能实现图片去雾?FFA 去雾算法、暗通道去雾算法用起来!(附代码)...
  2. html类名的作用,bootstrap类名及作用(部分)
  3. qt 删除文件夹_Qt 贪吃蛇制作(含源码)
  4. 【数据挖掘笔记九】分类:高级方法
  5. linux 脚本 apache进程,Apache环境下进程检查脚本
  6. form-data php,PHP 模拟form-data上传文件
  7. 现代谱估计:多窗口谱
  8. 为什么不敢和别人竞争_看懂这个自我评价发展曲线,你就明白,为什么青春期孩子如此叛逆...
  9. idea右键项目没有git 【解决方法】
  10. There is no configured/running web-servers found! Please, run any web-configuration and hit the Refr
  11. Codeforces 478B 6thweek contest_B
  12. 【POJ - 3347 】Kadj Squares (计算几何,思维 或 扫描线)
  13. 间接寻址级别不同_「计算机组成原理」:常见的指令寻址方式
  14. 微服务架构 SpringCloud(一)组件和概念介绍
  15. matlab vgg图像风格迁移,迁移网络的应用-图像风格迁移
  16. Allegro之测量时显示两种单位(mil mm)
  17. WEB应用之JSP+Servlet
  18. CSDN如何上传gif图片
  19. 微信小程序列表图片加载错误处理
  20. 申请加拿大计算机研究生如何写未来计划,加拿大学习计划书模板 (study plan)

热门文章

  1. 如何利用扩展欧几里得算法求解不定方程_欧几里德算法、拓展欧几里德、中国剩余定理...
  2. CSS中div覆盖另一个div
  3. ecs硬盘数据迁移_阿里云ECS新增数据盘以及迁移数据方法
  4. 小说中场景的功能_《流浪地球》:从小说到电影
  5. Linux查找命令find、loacte、whereis、which、type梳理
  6. android 融云浏览大图,融云 Android sdk kit 头像昵称更新机制
  7. 联想拯救者y7000加内存条_短测联想拯救者Y7000,到底值不值得买?
  8. php检查 session是否存在,检查sessionid已知的PHP会话是否处于活动状态
  9. 64位 linux 32位连接器,32位汇编程序在64位Ubuntu上的汇编和连接
  10. cgi php脚本运行超时间,php超时 - php-cgi调用外部程序超时,但php在命令行模式下能完整运行外部程序...