Node.js 是一个用于编写高效且可扩展的网络应用程序的跨平台 JavaScript 运行时环境。它使用事件驱动、非阻塞 I/O 模型,使其轻松处理大量并发连接。在Node.js中,抓取HTML页面内容可以使用request和Cheerio两个库来实现。
安装依赖库
在使用Node.js抓取HTML页面内容之前,需要先安装所需的依赖库,即request和Cheerio。
npm install request cheerio
抓取页面内容
使用request库获取网页内容,代码如下:
const request = require('request');
let url = 'https://www.example.com';
request(url, function (error, response, body) {
console.log(body);
});
以上代码会将请求到的整个HTML页面内容打印出来。
解析页面内容
使用Cheerio库,可以方便地从页面内容中提取所需要的数据。代码如下:
const request = require('request');
const cheerio = require('cheerio');
let url = 'https://www.example.com';
request(url, function (error, response, body) {
const $ = cheerio.load(body);
console.log($('title').text());
});
以上代码会输出抓取到的页面标题。
示例1:抓取图片链接
下面给出一个示例,演示如何抓取目标网站中所有的图片链接:
const request = require('request');
const cheerio = require('cheerio');
let url = 'https://www.example.com';
let images = [];
request(url, function (error, response, body) {
const $ = cheerio.load(body);
$('img').each(function(i, element) {
let src = $(this).attr('src');
images.push(src);
});
console.log(images);
});
以上代码会输出网页中所有的图片链接数组。
示例2:抓取电影排行榜
下面给出一个示例,演示如何抓取猫眼电影的电影排行榜:
const request = require('request');
const cheerio = require('cheerio');
let url = 'https://maoyan.com/board/4';
let movies = [];
request(url, function (error, response, body) {
const $ = cheerio.load(body);
$('dd').each(function(i, element) {
let movie = {
index: $(this).find('.board-index').text(),
name: $(this).find('.name').text(),
rating: $(this).find('.integer').text() + $(this).find('.fraction').text(),
image: $(this).find('.board-img').attr('data-src')
};
movies.push(movie);
});
console.log(movies);
});
以上代码会输出猫眼电影的电影排行榜,包含电影序号、名称、评分和图片链接等信息。
除了以上示例外,Node.js还可以结合其他的库和框架来实现更加强大的功能,如使用Puppeteer库实现网站自动化测试、使用Express框架来实现前后端分离,等等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nodejs抓取html页面内容(推荐) - Python技术站