Node.js实现简单爬虫示例详解
本文将通过两个示例来详细讲解Node.js如何实现简单的爬虫。在开始本篇攻略之前,请先确保你已经安装了Node.js和npm。
示例1:使用Request模块爬取网页内容
- 安装Request模块
在终端或命令行工具中输入以下命令,即可安装Request模块:
npm install request
- 编写爬虫代码
在Node.js中,使用Request模块进行爬虫操作非常简单。例如,下面的代码段演示了如何获取豆瓣电影Top250的电影名称:
const request = require('request');
request('https://movie.douban.com/top250', (error, response, body) => {
if (!error && response.statusCode === 200) {
const movieNames = body.match(/(?<=<span class="title">).*(?=<\/span>)/g);
console.log(movieNames);
}
});
在上述代码中,首先我们使用require方法引入Request模块,然后使用request函数发送GET请求。当请求成功时,返回的响应正文将存储在变量body中。使用正则表达式可以从响应正文中提取出电影名称。
- 运行爬虫
我们使用Node.js直接运行爬虫代码即可:
node spider.js
到此为止,使用Request模块实现简单爬虫的示例已经完成了。
示例2:使用Cheerio模块爬取网页内容
- 安装Cheerio模块
在终端或命令行工具中输入以下命令,即可安装Cheerio模块:
npm install cheerio
- 编写爬虫代码
Cheerio模块是一个轻量级的Node.js核心模块,用于解析HTML文档。我们将使用Cheerio模块来获取拉钩网站上的前端工程师职位信息。代码如下:
const request = require('request');
const cheerio = require('cheerio');
request({
url: 'https://www.lagou.com/zhaopin/fe/',
headers: {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36'
}
}, (error, response, body) => {
if (!error && response.statusCode === 200) {
const $ = cheerio.load(body);
$('.con_list_item').each((i, elem) => {
const job = $(elem).find('.position_link h3').text().trim();
const company = $(elem).find('.company_name a').text().trim();
const salary = $(elem).find('.money').text().trim();
console.log(`Job: ${job}, Company: ${company}, Salary: ${salary}`);
})
}
});
在上述代码中,我们首先发送GET请求并设置请求头信息,保证访问正常。然后使用Cheerio模块将响应正文解析成DOM树,并通过CSS选择器和jQuery语法获取我们需要的职位信息。
- 运行爬虫
我们使用Node.js直接运行爬虫代码即可:
node spider.js
到此为止,使用Cheerio模块实现简单爬虫的示例已经完成了。
参考链接:
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node.js实现简单爬虫示例详解 - Python技术站