Headless Chrome简介

2020-08-04 10:47:07 浏览数 (1)

在 Chrome 59中开始搭载Headless Chrome。这是一种在无需显示headless的环境下运行 Chrome 浏览器的方式。从本质上来说,就是不用 chrome 浏览器来运行 Chrome 的功能!它将 Chromium 和 Blink 渲染引擎提供的所有现代 Web 平台的功能都带入了命令行。

HeadlessChrome启动

Chrome --headless --disable-gpu --remote-debugging-port=9222 https://www.baidu.com

HeadlessChrome打印网站DOM

chrome --headless --disable-gpu --dump-dom https://www.baidu.com/

将页面打印为PDF

--print-to-pdf 标志将页面转出为PDF 文件:

chrome --headless --disable-gpu --print-to-pdfhttps://www.baidu.com/

使用Headless Chrome截图

要捕获页面的屏幕截图,请使用--screenshot 标志:

chrome --headless --disable-gpu--screenshot https://www.baidu.com/

HeadlessChrome在爬虫中的应用

由于存在大量的网页是动态生成的,在使用浏览器查看源代码之后,发现网页dom只有一个root元根元素和一堆js引用,根本看不到网页的实际内容,因此,爬虫不仅需要把网页下载下来,还需要运行JS解析器,将网站呈现出最终的效果。

在Headless出现之前,主要流行的是PhantomJS这个库,原理是模拟成一个实际的浏览器去加载网站。Headless Chome出现之后,PhantomJS地位开始不保。毕竟Headless Chome本身是一个真正的浏览器,支持所有chrome特性,而PhantomJS只是模拟,因此Headless Chome更具优势,下面是使用Python Selenium调用Headless Chome的代码:

fromselenium import webdriver

fromselenium.webdriver.chrome.options import Options

chrome_options= Options()

chrome_options.add_argument('--headless')

driver =webdriver.Chrome(chrome_options=chrome_options)

driver.get("www.baidu.com/")

总结:使用Headless Chome可以在无界面的形式下体验Chrome的完成功能,对于自动化测试和爬虫等而言是一个非常给力的工具。

headless chrome安装

sudo apt-get update

sudo apt-get install software-properties-common

sudo add-apt-repository ppa:canonical-chromium-builds/stage

sudo apt-get update

sudo apt-get install chromium-browser

chromium-browser --headless --remote-debugging-port=9222 https://www.baidu.com --disable-gpu

这里是使用headless模式进行远程调试,ubuntu上大多没有gpu,所以--disable-gpu以免报错。

curl http://localhost:9222

能够看到调试信息应该就是装好了。

#获取网页源码

chromium-browser --headless --dump-dom https://www.baidu.com/ --disable-gpu

#获取网页转换成PDF

chromium-browser --headless --print-to-pdf https://www.baidu.com/ --disable-gpu

#截图

chromium-browser --headless --screenshot --window-size=1280,1696 https://www.baidu.com/ --disable-gpu

添加 PPA 源

  添加 PPA 源的命令为:sudo add-apt-repository ppa:user/ppa-name

  添加好记得要更新一下:sudo apt-get update

删除 PPA 源

  删除 PPA 源的命令格式则为:sudo add-apt-repository -r ppa:user/ppa-name

  然后进入 /etc/apt/sources.list.d 目录,将相应 ppa 源的保存文件删除。

  最后同样更新一下:sudo apt-get update

0 人点赞