手机版

在Windows下安装节点爬虫工件操纵器

时间:2021-08-27 来源:互联网 编辑:宝哥软件园 浏览:

我相信我们对爬行动物并不陌生。当你想获取一些网站数据,做一些有趣的事情时,你必须抓取网页,使用爬虫。目前网上有很多爬行动物的教程资料,但大部分都是python语言的。如果你想成为一个web专业人士,你想通过js解决问题,所以你想使用nodejs。今天我们介绍一个节点的爬虫工具:木偶师。

木偶师,因为它的名字是“木偶”,允许我们像提线木偶一样操纵它。它是一个基于DevTools协议的Node库,为控制无头Chrome或Chrome提供了高级接口。其应用的几个例子在官方网站给出:

-生成网页截图(目前仅支持jpeg和png格式)和pdf文件-抓取SPA并异步呈现网页-自动表单提交、键盘输入、UI测试等。-创建最新的自动测试环境,即使用最新的浏览器功能-捕获站点的时间线以帮助分析性能问题。无头浏览器,相信如果你是爬虫的话,肯定会听说的。其实就是一个没有UI界面的浏览器,里面包含了一个浏览器应该具备的功能。通常用于web测试,但做爬虫没问题。PhantomJS提供了这样一个功能,它基于webkit内核已经有好几年了。不过因为puppet有背景(谷歌Chrome团队开发),所以最后还是选择了puppet。两者的区别在于后者只关注Chrome或Chrome。这也导致了最糟糕的一点:总是绑定最新版本的Chromium。

上面提到Puppet会绑定最新版本的Chromium,也就是说NPM I Puppet每次安装使用都会下载最新版本的Chromium,在Windows上大概是130Mb。下载npm包不容易,下载100兆以上的更难。当然,你可以使用cnpm。下图是我下载的界面。可以看到下载用了55分钟,肯定有我网络慢的问题,但是尽量不要下载Chromium。

官网说通过设置环境变量或者配置npm配置可以避免下载。但是我还没有成功设置环境变量,所以接下来我将解释如何配置npm config。puppet _ skip _ chromium _ download参数可以避免下载,因此您可以在安装puppet之前使用以下命令:

Npmconfig设置puppet _ skip _ chromium _ download=1,但总是不可能每次都键入这个命令,所以可以写入。npmrc文件。Npm官网提到,影响npm配置的文件有四个,分别是:项目配置文件(/path/to/my/project/。npmrc),用户配置文件(~/。npmrc)、全局配置文件($PREFIX/etc/npmrc)和npm内置配置文件(/path/to/npm/npmrc)您可以使用npm配置列表查看哪些配置文件会影响npm。但是有一个问题,就是上面的介绍文件针对的是npm的最新版本6.0。一般用nodejs下载的npm版本没那么高,只有npm4.x,导致项目中的配置文件无效。从下面两张图片可以看出两个版本npm的配置文件的区别(上面一张是npm4.0.2,下面一张是npm6.0),可以看到后者多了一个项目配置列表。

作为一个强迫症患者,我当然希望直接在项目目录中更改配置文件,所以使用以下命令安装最新版本的npm:

Npm安装[emailprotected] -g然后创建。npmrc文件,并输入以下配置命令:

这样配置puppet _ skip _ chromium _ download=1后,就可以跳过下载了,如图:

然后就可以用了,以官网为例:

const木偶师=require('木偶师');(async()={ const browser=wait puppeter . launch();const page=wait browser . NewPage();wait page . goto(' https://example.com ');wait page .截图({ path : ' example . png ' });wait browser . close();})();以为结束了?不会,虽然解决了跳过下载的问题,但是木偶师无法知道Chrome或者Chrome要用在哪里,因为没有下载,所以需要注明启动路径。修改它:

const木偶师=require('木偶师');(async()={ const browser=await puppet . launch({//无头: false,//可执行路径:' C: \ \用户\ \孙波\ \ app data \ \ Local \ \ Google \ \ Chrome \ \ Application \ \ Chrome . exe ',//您的Chrome的路径});const page=wait browser . NewPage();wait page . goto(' https://example.com ');wait page .截图({ path : ' example . png ' });wait browser . close();})();更改executablePath参数指向本地chrome所在的目录,注意要指向chrome.exe才能正常使用。无头参数也很有意思。如果它的值为false,那么它真的会为我们启动一个chrome进程,这样我们就可以可视化运行程序的整个过程。

好了,安装配置好了,我们就可以享受木偶师带来的美好世界了。最后,官方网站的例子使用了异步/等待和承诺,所以有必要了解这些异步知识。这些东西用得好,开辟了异步编程的新天地。祝你好运!

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:在Windows下安装节点爬虫工件操纵器是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。