如何使用 Node.js 进行网络抓取?
在Node.js中进行网络抓取,可以使用axios
或request
等库来发送HTTP请求,并用cheerio
来解析返回的HTML内容。以下是一个简单的例子,使用axios
获取网页内容,并用cheerio
解析。
首先,你需要安装这些依赖:
npm install axios cheerio
然后,你可以使用以下代码进行网络抓取:
const axios = require('axios');
const cheerio = require('cheerio');
async function fetchAndParse(url) {
try {
// 发送GET请求
const { data } = await axios.get(url);
// 使用cheerio加载返回的HTML内容
const $ = cheerio.load(data);
// 示例:抓取页面上的所有链接
const links = [];
$('a').each((i, link) => {
const href = $(link).attr('href');
if (href) {
links.push(href);
}
});
// 输出抓取到的链接
console.log(links);
} catch (error) {
console.error('Error fetching and parsing:', error);
}
}
// 使用函数抓取一个网页
fetchAndParse('https://example.com');
这段代码定义了一个异步函数fetchAndParse
,它接受一个URL,发送HTTP GET请求获取页面内容,然后使用cheerio
加载并解析HTML。在解析后的DOM中,我们通过选择器抓取了所有的链接,并将它们输出到控制台。你可以根据实际需求修改选择器和后续处理逻辑。
评论已关闭