如何使用nodejs做爬虫程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用nodejs做爬虫程序相关的知识,希望对你有一定的参考价值。
目标
抓取网站上的妹子照片。
第三方模块
superagent : 第三方Nodejs 模块,用于处理服务器和客户端的Http请求。
cheerio : 为服务器端定制的Jquery实现。
思路
通过superagent 获取目标网站的dom
通过cheerio对dom进行解析,获得通用布局。
如果只是爬取一个页面,则可以直接将目标页面的目标元素获取
如果是分页或者多个页面,可以通过循环获得目标链接,进行多次抓取。
实现
这里我们实现一个抓取网站妹子的照片。
目标网址:
代码如下:
建立项目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做爬虫程序的主要内容,如果未能解决你的问题,请参考以下文章