十二 28

Headless Chromium

无头Chromium允许在无头/服务器环境中运行Chromium。预期的用例包括使用Chromium和Blink提供的所有现代Web平台功能,加载网页,提取元数据(例如DOM)以及从页面内容生成位图。

有两种使用无头铬的方法:

通过DevTools远程调试协议使用

  1. 使用--headless命令行标志启动普通的Chrome二进制文件(目前仅适用于Linux):

当前,您还需要使用--disable-gpu以避免因缺少Mesa库而导致错误。

  1. http://localhost:9222在另一个浏览器中导航至以打开DevTools界面,或使用Selenium之类的工具来驱动无头浏览器。

Continue reading

十二 28

无头浏览器Chrome 入门

Chrome 59附带了无头Chrome。这是在无头环境中运行Chrome浏览器的一种方式。本质上,没有Chrome即可运行Chrome!它将Chromium和Blink渲染引擎提供的所有现代Web平台功能引入命令行。

为什么这样有用?

无头浏览器是自动化测试和不需要可见UI外壳的服务器环境的绝佳工具。例如,您可能想对真实的网页运行一些测试,为其创建PDF,或者仅检查浏览器如何呈现URL。

启动无头(CLI)

无头模式入门的最简单方法是从命令行打开Chrome二进制文件。如果您已安装Chrome 59+,请使用以下--headless标志启动Chrome :

十二 28

无头浏览器 PhantomJS

无头浏览器(Headless browser)指没有用户图形界面的(GUI)的浏览器,目前广泛运用于web爬虫和自动化测试中。随着反爬虫和反反爬虫对抗技术的升级,越来越多的爬虫开始使用无头浏览器伪装成正常用户绕过反爬虫策略。

我们如何区分这些无头浏览器和正常浏览器?从Server Side分析用户行为进行检测是一劳永逸的方法,但成本和难度都很大。

不过通过无头浏览器的一些特性。我们也可以从从Client Side找出一些不同来。下面以醉受欢迎的PhantomJS(2.x版本)为例,介绍一些识别的方法,对于其他的无头浏览器,如Slimer JS这些方法也可以参考

Continue reading