NodeJS制作爬虫全过程
在 NodeJS 中,可以使用第三方库 axios
和 cheerio
来制作爬虫。以下是 NodeJS 制作爬虫的完整攻略:
安装 axios 和 cheerio
首先需要在项目中安装 axios
和 cheerio
这两个库。可以通过以下命令在控制台中安装这两个库:
npm install axios cheerio
获取网页内容
使用 axios
库向网站发送 HTTP 请求,获取网页的 HTML 内容。以下是一个获取百度首页 HTML 内容的示例:
const axios = require('axios');
// 发送 GET 请求
axios.get('https://www.baidu.com/')
.then((response) => {
console.log(response.data);
})
.catch((error) => {
console.log(error);
});
解析HTML内容
使用 cheerio
库解析 HTML 内容,可以根据 HTML 标签和属性选择元素,并获取元素的文本内容或属性值。以下是一个解析 HTML 内容的示例:
const cheerio = require('cheerio');
const html = `
<div id="main">
<h1>Hello, World!</h1>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
`;
// 使用 cheerio 获取元素
const $ = cheerio.load(html);
// 获取元素的文本内容和属性值
const title = $('h1').text();
const firstItem = $('ul li:first-child').text();
const secondItem = $('ul li:nth-child(2)').text();
const thirdItem = $('ul li:nth-child(3)').text();
示例一:获取百度首页的标题
下面是一个示例,获取百度首页的标题。可以通过以下代码实现:
const axios = require('axios');
const cheerio = require('cheerio');
// 发送 GET 请求,获取百度首页 HTML 内容
axios.get('https://www.baidu.com/')
.then((response) => {
// 使用 cheerio 解析 HTML 内容
const $ = cheerio.load(response.data);
// 获取百度首页的标题
const title = $('title').text();
console.log(title);
})
.catch((error) => {
console.log(error);
});
示例二:获取文章列表的标题和链接
下面是一个示例,获取某个网站的文章列表中所有文章的标题和链接。可以通过以下代码实现:
const axios = require('axios');
const cheerio = require('cheerio');
// 发送 GET 请求,获取文章列表 HTML 内容
axios.get('https://www.example.com/articles')
.then((response) => {
// 使用 cheerio 解析 HTML 内容
const $ = cheerio.load(response.data);
// 获取文章列表中所有文章的标题和链接
const articles = [];
$('article').each((i, article) => {
const titleElem = $(article).find('h2 a');
const title = titleElem.text();
const link = titleElem.attr('href');
articles.push({
title: title,
link: link
});
});
console.log(articles);
})
.catch((error) => {
console.log(error);
});
以上就是使用 NodeJS 制作爬虫的完整攻略,包括库的安装、获取网页内容、解析 HTML 内容以及两个示例的代码实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:NodeJS制作爬虫全过程 - Python技术站