Nodejs抓取html页面内容(推荐)

yizhihongxing

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

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

相关文章

  • 浅谈js promise看这篇足够了

    浅谈JS Promise 介绍 JS Promise是一种规范化的解决异步操作的方案,由于JS具有单线程、异步操作等特点,这使得JS Promise显得更加重要。在这篇文章中,我们将讨论JS Promise并提供示例。我们会通过以下步骤详细介绍JS Promise: Promise概念 Promise状态 Promise如何使用 Promise示例1 Pro…

    node js 2023年6月8日
    00
  • JavaScript中的this陷阱的最全收集并整理(没有之一)

    JavaScript中的this陷阱攻略 简介 JavaScript中的关键字this在很多情况下会导致一些没有预料到的结果,对于这种情况我们称之为this陷阱。为了避免陷入这种情况,必须对this的行为有深入的了解。本文收集并整理了JavaScript中的this陷阱,希望能够帮助大家更好地使用this。 this陷阱 1. 隐式绑定的行为 传统方式下,J…

    node js 2023年6月8日
    00
  • 关于NodeJS中的循环引用详解

    关于 NodeJS 中的循环引用详解: 什么是循环引用? 循环引用即指两个或多个模块之间相互依赖,导致出现互相引用的情况。例如,模块 A 引用了模块 B 中的对象,同时模块 B 中的对象又引用了模块 A 中的对象,就会导致循环引用。 例如: 模块A: const B = require(‘./B’); const name = ‘Tom’; module.e…

    node js 2023年6月8日
    00
  • node.js-path模块你了解多少

    下面是详细讲解“node.js-path模块”的攻略: 什么是path模块 在Node.js中,path模块提供了处理文件路径的工具,它可以轻松地处理Linux、Windows和OS X等操作系统的路径问题。Path通常是一个类UNIX风格的路径名,但是也支持Windows风格的路径名。Path模块提供了各种实用的功能来解析和组合路径。 Path模块的常用方…

    node js 2023年6月8日
    00
  • 深入理解Node内建模块和对象

    深入理解Node内建模块和对象需要我们具备以下知识: Node.js的内置模块列表 Node.js内置对象的使用方法和功能 Node.js的内置模块列表 Node.js提供了丰富的内置模块,可以用于处理不同的任务,包括操作文件系统、网络通信、加密、压缩等等。以下是Node.js内置模块的列表: assert:断言模块 buffer:缓存模块 child_pr…

    node js 2023年6月8日
    00
  • Nodejs实现短信验证码功能

    为了实现短信验证码功能,可以通过Nodejs搭建一个基于REST API协议的服务器端应用程序。下面是一个完整攻略: 步骤一:准备环境 首先,确保你已经安装了Nodejs环境。可以从Nodejs官网下载安装:https://nodejs.org。 接着,你需要安装三个npm模块,分别是express(用于搭建Web应用框架)、body-parser(用于解析…

    node js 2023年6月8日
    00
  • Node 文件查找优先级及 Require 方法文件查找策略

    Node 文件查找优先级及 Require 方法文件查找策略 在 Node.js 中,当我们使用 require 方法加载模块时,Node.js 会按照一定的文件查找策略来查找相应的模块文件。掌握这些策略对于理解 Node.js 模块化机制非常重要。 文件查找优先级 在加载模块时,Node.js 会按照以下顺序查找模块文件: 核心模块:如果你加载的是一个 N…

    node js 2023年6月8日
    00
  • node.js配置Token验证的2种方式总结

    当我们需要在Node.js应用程序中实现用户身份认证时,常用的一种方式是使用Token来验证用户。下面是两种常见的Node.js配置Token验证的方法: 方法一:使用jsonwebtoken库 首先需要安装jsonwebtoken库:npm install jsonwebtoken 在代码中引入jsonwebtoken库:const jwt = requi…

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