Node.js的HTML分析利器node-jquery用法浅析
什么是node-jquery
node-jquery
是基于jsdom
开发的一个能够在Node.js环境下使用jQuery语法的工具库。使用node-jquery
可以方便地处理从HTML文档中提取想要数据的任务,尤其是对于爬虫程序。
安装node-jquery
npm install node-jquery
使用node-jquery
基本用法
var $ = require("node-jquery");
$.load("<div><p>Hello World</p></div>");
console.log($("p").text()); // 输出 "Hello World"
上述示例中,首先通过require
方法引入了node-jquery
模块。接着使用$.load
方法将字符串"<div><p>Hello World</p></div>"
中的HTML加载到DOM中,然后使用jQuery的语法选中<p>
元素,并使用text()
方法获取其文本内容并输出。
从URL加载页面
var $ = require("node-jquery");
$.get("http://example.com", function(data) {
console.log(data);
});
上述示例中,通过$.get
方法可以向指定URL发起GET请求,并获取返回的HTML文档。在回调函数中,可以对文档进行进一步处理,如使用$()
方法选中元素,并进行相应处理。
实际应用
示例1:获取百度搜索结果
var request = require("request");
var cheerio = require("cheerio");
request.get("https://www.baidu.com/s?wd=node-jquery", function(err, res, body) {
if(err) {
console.error(err);
return;
}
var $ = cheerio.load(body);
$("div.c-container").each(function() {
var title = $(this).find("h3 a").text();
var summary = $(this).find("div.c-abstract").text();
console.log(title + "\n" + summary + "\n");
});
});
上述示例中,使用request
模块发起到百度搜索页的请求,并获取返回的HTML文档。随后使用cheerio
模块将HTML文档转换为jQuery对象。最后使用jQuery的语法选中搜索结果中的标题和摘要信息,并输出到控制台中。
示例2:爬取玩家汇WeGame网站热门单机游戏
var request = require("request");
var cheerio = require("cheerio");
request.get("https://www.wegame.com.cn/news/pcgame/hotsale/", function(err, res, body) {
if(err) {
console.error(err);
return;
}
var $ = cheerio.load(body);
$("ul.goods-list li").each(function() {
var title = $(this).find("a.title").text();
var price = $(this).find("span.price").text();
var rating = $(this).find("div.ratings").attr("data-rating");
console.log(title + "\t" + price + "\t" + rating + "分");
});
});
上述示例中,使用request
模块发起到玩家汇WeGame的热门单机游戏页的请求,并获取返回的HTML文档。随后使用cheerio
模块将HTML文档转换为jQuery对象。最后使用jQuery的语法选中游戏的名称、价格和评价等信息,并输出到控制台中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nodejs的HTML分析利器node-jquery用法浅析 - Python技术站