简单好用的nodejs 爬虫框架分享

发布时间:2026-09-28 18:18:18 浏览次数:2

简单好用的 Node.js 爬虫框架分享

什么是爬虫框架

爬虫框架是一种编程工具,用于提取互联网上的信息。它是由数据抓取器、页面解析器、数据存储器等模块组成。一般情况下,它们帮助我们抓取一些网站的数据,分析并将它们存储到我们需要的地方。使用爬虫可以让我们快速地获取大量数据并进行分析。

Node.js 爬虫框架

Node.js爬虫框架是一个美妙的选择,因为它是基于JavaScript构建的,使得爬虫框架代码和前端代码看起来非常相似。它还利用了Node.js自身很好的模块化体系结构,使得开发人员可以轻松地组合和创建新模块。 Node.js还有一个强大的内置HTTP库,使其可以轻松地与互联网上的网站交互。

Cheerio

Cheerio是一个类似于jQuery的Node.js库,可以让我们在服务器上使用CSS选择器语法对HTML文档进行解析。使用Cheerio将方便我们对html文档进行筛选、过滤和遍历。

Superagent

Superagent 是一个基于 Node.js 的 HTTP 请求库,它支持链式调用,具有良好的可读性和易使用性。

示例 1(抓取丁香园疫情数据)

以下是一个简单的 Node.js 爬虫用于抓取丁香园上的实时疫情数据:

const superagent = require('superagent');const cheerio = require('cheerio');const url = 'https://3g.dxy.cn/newh5/view/pneumonia';superagent.get(url)  .then(res => {    const $ = cheerio.load(res.text);    const totalData = $('#getStatisticsService').text();    const reg = /try.*catch\s*\((.*)\)/;    const data = JSON.parse(totalData.match(reg)[1]);    console.log(data);  // 打印解析出来的数据  })  .catch(err => {    console.log(err);  });

当我们运行以上代码时,控制台上将会打印出从丁香园上爬取到的实时疫情数据。

示例 2(抓取知乎热榜数据)

以下是另一个示例,用于抓取知乎热榜上的数据:

const superagent = require('superagent');const cheerio = require('cheerio');const url = 'https://www.zhihu.com/hot';superagent.get(url)  .then(res => {    const $ = cheerio.load(res.text);    const itemList = $('.HotItem');    const list = [];    itemList.each((index, ele) => {      const titleEle = $(ele).find('.HotItem-title');      const excerptEle = $(ele).find('.HotItem-excerpt');      const metricsEle = $(ele).find('.HotItem-metrics');      const item = {        title: titleEle.text(),        link: titleEle.find('a').attr('href'),        excerpt: excerptEle.text(),        metrics: metricsEle.text(),      };      list.push(item);    });    console.log(list);  // 打印解析出来的数据  })  .catch(err => {    console.log(err);  });

它用类似的方式抓取了知乎热榜上的数据,并将其解析成了一个数组。您可以通过访问 "item.link" 属性获得每个项目对应的链接。

总结

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477