如何使用nodejs做爬虫程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用nodejs做爬虫程序相关的知识,希望对你有一定的参考价值。

    目标

    抓取网站上的妹子照片。

    第三方模块

    superagent : 第三方Nodejs 模块,用于处理服务器和客户端的Http请求。

    cheerio : 为服务器端定制的Jquery实现。

    思路

    通过superagent 获取目标网站的dom

    通过cheerio对dom进行解析,获得通用布局。

    如果只是爬取一个页面,则可以直接将目标页面的目标元素获取

    如果是分页或者多个页面,可以通过循环获得目标链接,进行多次抓取。

    实现

    这里我们实现一个抓取网站妹子的照片。

    目标网址:

    代码如下:

参考技术A

建立项目craelr-demo
我们首先建立一个Express项目,然后将app.js的文件内容全部删除,因为我们暂时不需要在Web端展示内容。当然我们也可以在空文件夹下直接 npm install express来使用我们需要的Express功能。

1通过这一系列的id、class来定位我们需要的信息。

2使用superagent获取源数据

superagent就是ajax API来使用的Http库,它的使用方法与jQuery差不多,我们通过它发起get请求,在回调函数中输出结果。

代码如下:

3它的res结果为一个包含目标url信息的对象,网站内容主要在其text(string)里。

简单NodeJS爬虫和使用cookie进行模拟登录

参考技术A        NodeJS做爬虫也是很方便的。因为nodejs有HTTP模块直接可以使用,而且还有很多简单粗暴的库可以即拿即用。

      首先,需要的库文件,

      1、superagent 是个轻量的的 http 方面的库,就像jquery的post,和get一样,很简单。

      2、cheerio 是一个服务端操作DOM的库,简直就是服务端的jquery。

     好的,我们需要抓取某个网站的题目。如下图。这个系统下,及时是游客状态也是可以查看题目的,只是答案我们看不到。会显示我没有登录。

现在我们有个需求,先抓取15页,根据URL的参数可以页数就是地址中 的P。并且要有本地cookie,获取cookie的方法,最简单的是,利用浏览器登录网站之后,在控制台直接打印document.cookie,得到之后,复制进txt文本。用fs模块读取并转换成字符串。在superagent请求时,把cookie传进去。

好了,控制台已经不输出“未登录”,说明已经登录成功了。

以上是关于如何使用nodejs做爬虫程序的主要内容,如果未能解决你的问题,请参考以下文章

如何使用nodejs做爬虫程序

如何使用nodejs做爬虫程序

如何使用nodejs做爬虫程序

如何使用nodejs做爬虫程序

如何用nodejs开发爬虫程序?

如何使用 NodeJS 在本地测试 AWS Lambda 处理程序?