nodejs的HTML分析利器node-jquery用法浅析

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技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • nodejs入门详解(多篇文章结合)

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它让 JavaScript 可以运行在服务端,不仅支持处理 Web 请求,还有一些高性能和低延迟的网络编程特性。下面我们来详细讲解一下关于“nodejs入门详解(多篇文章结合)”的完整攻略: 一、Node.js入门 1. Node.js 的基础知识 介绍Node.js的…

    node js 2023年6月8日
    00
  • JavaScript工具库之Lodash详解

    JavaScript工具库之Lodash详解 简介 Lodash是一个流行的JavaScript工具库,提供了很多实用的函数,可以大大简化JavaScript编程的工作量。Lodash不仅提供了很多常用的JavaScript内置函数的增强版,还提供了很多新的实用函数,如各种数据处理、字符串操作、数组操作、函数式编程等等。 安装 可以通过npm安装Lodash…

    node js 2023年6月8日
    00
  • 详解Node.js实现301、302重定向服务

    详解Node.js实现301、302重定向服务 什么是重定向 重定向是一种服务器技术,用于将浏览器从一个URL地址自动导向到另一个URL地址。有时候网站需要更改某个页面的URL地址,但想要让原URL能够自动跳转到新的URL地址,避免用户被无意中重定向到错误的页面,这时候就需要使用重定向服务。 HTTP协议定义了两种类型的重定向: 301 Moved Perm…

    node js 2023年6月8日
    00
  • node命令行工具之实现项目工程自动初始化的标准流程

    下面是实现项目工程自动初始化的标准流程: 1. 创建项目 在命令行中创建项目文件夹,并在其内部添加项目 package.json 文件。 mkdir auto-init-project cd auto-init-project npm init -y 2. 创建node cli工具 使用以下命令生成一个全局安装的包,该包将成为node命令行工具。 npm i…

    node js 2023年6月8日
    00
  • 三分钟教会你用nodejs操作mysql数据库

    使用 Node.js 操作 MySQL 数据库是一件非常重要的事情,特别是对于 Node.js 开发人员来说,因为这可以帮助他们更好地处理和管理数据。在下面的对话中,我将分享一个简单的三分钟攻略,以向您展示如何使用 Node.js 操作 MySQL 数据库。 1. 安装 MySQL 首先,我们需要在本地计算机上安装 MySQL。MySQL 是一个流行的开源数…

    node js 2023年6月8日
    00
  • Node.js 使用request模块下载文件的实例

    Node.js使用request模块下载文件需要经过以下几个步骤: 1.安装request模块 在终端中运行以下命令可以安装request模块: npm install request 2.加载request模块并发送请求 在Node.js的代码中,需要使用require函数来加载request模块。然后使用request模块发送请求并下载文件。以下是一个简…

    node js 2023年6月8日
    00
  • 详解node.js 下载图片的 2 种方式

    当我们需要从网络上下载图片时,有两种方式可以选择。第一种是使用http模块来下载,而第二种则是使用第三方库request。以下是对这两种方式的详解: 方式一:使用http模块下载图片 要使用http模块下载图片,首先需要使用Node.js内置的模块http创建一个http请求,然后将其发送到要下载图片的URL地址上,并将请求到的数据保存下来。下面是一段例子代…

    node js 2023年6月8日
    00
  • nodeJS进程管理器pm2的使用

    下面是关于“nodeJS进程管理器pm2的使用”的完整攻略。 什么是pm2? pm2是一个Node.js进程管理器,它可以管理您的Node.js应用程序并帮助您使它们在生产环境中运行得更流畅、更可靠。它具有以下特性: 自动启动 进程守护 集群模式 0秒停机重载 安装pm2 全局安装pm2: npm install pm2 -g 安装完成后,我们可以通过以下方…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部