下面是详细的攻略。
1. 什么是cheerio
在 Node.js 中,cheerio 是一种非常流行的解析 HTML 和 XML 文档的库。它使用了类似于 jQuery 的语法,让我们用更加便捷的方式来操作文档和获取其中的信息。
2. 安装cheerio
在使用 cheerio 之前,需要先在 Node.js 中安装该库。安装方式如下:
npm install cheerio
3. 使用cheerio编写一个简单的爬虫
现在我们来编写一个能够爬取百度首页标题的简单爬虫。
const request = require('request');
const cheerio = require('cheerio');
request('http://www.baidu.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
const $ = cheerio.load(body);
const title = $('title').text();
console.log(title);
}
})
我们先使用 request 库来发送一个 HTTP 请求,然后获取到百度首页的 HTML 内容。接着,我们将获取到的内容传给 cheerio.load(),通过代码 $('title').text()
来获取页面的标题,并将其打印到控制台上。
4. 编写一个更加复杂的爬虫
除了简单的获取页面标题,我们还可以使用 cheerio 来获取页面中任意元素的信息。下面是一个例子,它将获取网易新闻首页的新闻标题和链接。
const request = require('request');
const cheerio = require('cheerio');
request('http://www.163.com/', function (error, response, body) {
if (!error && response.statusCode == 200) {
const $ = cheerio.load(body);
$('div .news_default').find('h3 a').each(function(index, element) {
const title = $(element).text(); // 获取新闻标题
const href = $(element).attr('href'); // 获取新闻链接
console.log(title + ' - ' + href);
});
}
})
在这个例子中,我们使用一个更加复杂的选择器 $('div .news_default').find('h3 a')
来获取新闻标题和链接。接下来,我们使用 each()
方法遍历每个新闻元素,获取每个新闻的标题和链接,并将它们打印到控制台上。
总结
以上就是利用 cheerio 制作简单的网页爬虫的完整攻略,其中包括了两个示例说明。使用 cheerio 非常方便,能够快速地从网页中获取到我们需要的数据,是 Web 开发中必不可少的工具之一。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Node.js 利用cheerio制作简单的网页爬虫示例 - Python技术站