首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NodeJS:使用Cheerio解析HTML HTML和内联SVG图形

Cheerio 是一个 Node.js 库,可用于解析和操作 HTML 文档

  1. 首先,需要在项目中安装 Cheerio。打开终端并运行:
代码语言:javascript
复制
npm install cheerio
  1. 在你的项目中导入 Cheerio 库:
代码语言:javascript
复制
const cheerio = require('cheerio');
  1. 使用 Cheerio 加载 HTML 文档:
代码语言:javascript
复制
const html = `
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Example Page</title>
</head>
<body>
    <h1>Hello, World!</h1>
    <svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
        <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
    </svg>
</body>
</html>
`;

const $ = cheerio.load(html);
  1. 使用 Cheerio 选择器查找和操作 HTML 元素:
代码语言:javascript
复制
// 查找 h1 标签
const h1 = $('h1');
console.log(h1.text()); // 输出: Hello, World!

// 查找 SVG 元素
const svg = $('svg');
console.log(svg.attr('width')); // 输出: 100
  1. 遍历和操作 SVG 内部的元素:
代码语言:javascript
复制
// 查找 SVG 中的 circle 元素
const circle = $('circle');
console.log(circle.attr('fill')); // 输出: red

// 修改 circle 元素的属性
circle.attr('fill', 'blue');
console.log(circle.attr('fill')); // 输出: blue
  1. 将修改后的 HTML 内容输出:
代码语言:javascript
复制
console.log($.html());
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何使用Cheerio与jsdom解析复杂的HTML结构进行数据提取

传统的解析库可能无法有效处理这些复杂的结构,而JavaScript环境下的Cheerio和jsdom提供了强大的工具,帮助开发者在Node.js环境中高效解析和处理HTML文档。...解决方案使用Cheerio和jsdom可以在Node.js环境中高效解析和操作HTML文档。...案例分析下面我们将通过一个具体的示例来演示如何使用Cheerio和jsdom解析复杂的HTML结构,并结合代理IP、cookie和user-agent的设置,实现高效的数据提取和归类统计。...数据提取:在fetchData函数中,使用Cheerio选择器提取房产信息,包括title(房产标题)、price(价格)、location(地点)和type(房产类型)。...结论本文介绍了如何结合Cheerio和jsdom解析复杂的HTML结构,并通过代理IP、cookie、user-agent的设置,以及多线程技术,提升数据采集的效率和准确性。

18810
  • nodejs爬虫入门

    本篇从零介绍一下爬虫,使用的技术以nodejs为基础。 ? 爬虫是什么? 简单直观的总结一下,把已经在网络上的内容,请求获取后解析,让杂乱的数据变得仅仅有条,挖掘更大的意义。...google和百度背后的搜索引擎就是巨大的网络爬虫。...---- 实现爬虫的工具 能发起http请求的工具,在nodejs中你可以选择http模块的request方法或者get方法,或者使用第三方包superagent网页解析数据筛选。...网页数据解析工具,在nodejs中,可以通过cherrio或者jsdom两个第三方包完成。...http.get+cheerio+iconv-lite 这种方式还是比较简单的,容易理解,直接使用http的get方法进行请求url,将得到的内容给cheerio解析,用jquery的方式解析出我们要东西即可

    1.3K30

    编写NodeJs脚本实现接口请求

    在打开的页面,可以直接下载最新的nodejs版本; 图片 也可以在下载页面, 来下载其他版本; 下载后直接安装即可;安装完之后就可以使用npm命令了; 多版本控制 nodejs的版本很多,实际开发中,...16.14.0 设置代理和镜像 如果nvm安装nodejs太慢.可以设置国内的代理地址,可以加快速度: 打开nvm安装目录,找到settings.txt文件,在最后添加一下参数 node_mirror...脚本实现接口请求 写一个脚本请求指定url获取html并解析: 主要用到的库是https和cheerio; http是发起请求使用,是内置插件; cheerio是一个第三方插件,该插件可以将网页中的数据拿出来...,像jquery一样操作dom, 安装命令: npm install cheerio const https = require('http'); //请求发起 //解析html 一个服务端操作DOM...(){ //解析html //console.log(html) const $ = cheerio.load(html); console.log

    1.7K20

    node爬虫实践总结

    robot.txt协议 该协议是搜索引擎从业者和网站站长通过邮件讨论定下的,有几个重要的特点: robot.txt协议是蜘蛛访问网站的开关,决定蜘蛛可以抓取哪些内容,不可以抓取哪些内容。...html之间的紧密联系,使用nodejs进行网络爬虫也是很好的实践。...const cookieColl = Request.jar(); const request = Request.defaults({jar: cookieColl}); 资源解析模块 cheerio...而cheerio是nodejs中的jQuery,上手方便,相比于xml解析的xpath简直好用一万倍。如果你熟悉jQuery,那么cheerio就能很容易玩转。...jsdom相比于cheerio解析速度会稍慢,但是从npm社区的下载量来说,jsdom是cheerio的两倍,jsdom提供了其他丰富的功能,后续有待继续挖掘。

    1.3K20

    Nodejs学习笔记(十一)--- 数据采集器示例(request和cheerio)

    写在之前   很多人都有做数据采集的需求,用不同的语言,不同的方式都能实现,我以前也用C#写过,主要还是发送各类请求和正则解析数据比较繁琐些,总体来说没啥不好的,就是效率要差一些,   用nodejs写采集程序还是比较有效率...(可能也只是相对C#来说),今天主要用一个示例来说一下使用nodejs实现数据采集器,主要使用到request和cheerio。...request :用于http请求 https://github.com/request/request cheerio:用于提取request返回的html中需要的信息(和jquery用法一致)...HTML结构,然后根据结构写解析代码 /* * 功能: 数据采集 * 创建人: Wilson * 时间: 2015-07-29 */ var request = require('request...这个采集器就完成了,其实就是request一个get请求,请求回调中会返回body即HTML代码,通过cheerio库以jquery库语法一样操作解析,取出想要的数据!

    2K80

    Nodejs学习路线图

    本文把我的学习和使用经验进行归纳总结,希望给新入门Nodejs的同学做一些指引。...同时,Javascript语言在Web前端开发中至关重要,特别HTML5的应用必须要使用,所以前后台统一语言,不仅可以实现程序员的全栈开发,还可以统一公共类库,代码标准化。...Cheerio工作在一个非常简单,一致的DOM模型之上,解析、操作、渲染都变得难以置信的高效。基础的端到端的基准测试显示Cheerio大约比JSDOM快八倍(8x)。...Cheerio封装了@FB55兼容的htmlparser,几乎能够解析任何的 HTML 和 XML document。 ?...在HTML页面中加载bundle.js。 ? 2.12 命令行编程工具:Commander commander 是一个轻巧的nodejs模块,提供了用户命令行输入和参数解析强大功能。

    6.4K102

    nodejs cheerio模块提取html页面内容

    nodejs cheerio模块提取html页面内容 1. nodejs cheerio模块提取html页面内容 1.1. 找到目标元素 1.2. 美化文本输出 1.3. 提取答案文本 1.4....最终代码 本文给出使用一个用cheerio模块提取html文件中指定内容的例子,并说明具体步骤、涉及到的API、以及其它模块。...cheerio模块是一个类似jquery的模块,具有相似的API、功能,能够将一个网页解析为DOM,以及通过selector选择元素,设置、获取元素属性。...要实现这个方法,要获取一个元素的所有的子结果,使用cheerio的contents函数,这个函数获取一个元素的所有子元素(包括文本元素)。然后调用字符串的trim函数去除首尾的空白文本。...由于子元素又有子元素,因此使用递归函数。

    3.3K60

    Node爬虫:利用Node.js爬取网页图片的实用指南

    本文将详细介绍如何使用Node.js编写爬虫程序,实现网页图片的批量爬取,帮助您轻松获得所需的图片数据,并揭示一些实用技巧和注意事项。一、准备工作1....安装Node.js:确保您的电脑上已经安装了Node.js,您可以从官网(https://nodejs.org/)下载最新版本并进行安装。2....解析网页: 利用`cheerio`库来解析网页内容,提取其中的图片链接: ```javascript function extractImageUrls(html) { const $ = cheerio.load...- 爬取他人网站图片时,要遵守版权相关法律法规,谨慎使用和传播获得的图片。 - 添加适当的错误处理机制,避免因网络故障或其他异常情况导致程序中断。...通过运用`axios`库发起HTTP请求、`cheerio`库解析网页内容,并结合`fs`和`path`模块实现图片的下载,您可以轻松地获取所需的图片数据。。

    1.1K31

    用node写个爬虫?看完这篇新手也会

    头信息,比如 cookie 或 referer 之类) 利用正则匹配或第三方模块解析 HTML 代码,提取有效数据 将数据持久化到数据库中 当然爬虫的写法千千万,下面只提供吃瓜群众都能看懂的版本~ *...*实验阶段* *准备阶段* NPM (npm:趁还没被yarn干掉再续一秒) 首先我们需要通过npm安装两个模块reuqest和cheerio来帮助我们更方便地请求和 解析页面 终端cd到你的文件目录里...package.json 装完你可以看到你文件夹里的package.json里已经多了两个依赖项 crawler.js 假设你的爬虫程序主文件名叫crawler.js,我们需要在这个文件里引入request和cheerio...小学妹就不坑LV老师啦,欢迎大家自行寻找他的个人站~) CHEERIO cheerio模块可以在服务器端像使用Jquery的方式一样操作Dom结构,许多用法和jquery 的语法基本相同,为服务器特别定制的...简言之,是服务器端的鸡块瑞(◕ܫ◕)~ Cheerio 几乎能够解析任何的 HTML 和 XML document,灵活好用,灰常厉害 只需这么用: 基础知识学习完毕,让我们一起投入到火热的社会主义建设中去

    77220

    网络爬虫之html2md

    前言 上周利用java爬取的网络文章,一直未能利用java实现html转化md,整整一周时间才得以解决。...设计思路 Java实现 一开始的思路是想着用java来解析html,想着各种标签解析、符号解析、正则替换等等,决定在github上搜索一波,果然是有前辈实现过,顿时欣喜若狂; 代码地址 下载后如下图 ?...NodeJS实现 为何突然会选择NodeJS来实现,刚好最近在看node书籍,里面有提到node爬虫,解析爬取的内容,书中提到利用cheerio模块,遂果断浏览其api文档,cheerio其实就是jquery...实现思路 实现单个转化 自定义解析 实现批量转化 难点分析 自定义解析是比较头疼的事情,必须要分析需要转化的html的格式,需要读取的内容,本人对h1,h2,h3,div,img,a标签做了处理,可自行扩展...html解析代码如下        if('p' === name){ if(e_children.type === 'text'){

    92310

    Iconfont 还是不能上传,如何维护你的 Icon?

    最终方案:使用 svg 代替 iconfont 使用 svg 的优势 完全离线化使用,不需要从 CDN 下载字体文件,图标不会因为网络问题呈现方块,也无需字体文件本地部署。...打开 svg 会看到如下代码 一个 glyph 元素定义了 SVG 字体中的一个独立的字形,所以我们可以通过一个 node 脚本将这里面的独立字形转变 svg 直接上代码 const cheerio...= cheerio.load(data) $('glyph').each((index, item) => { const svgStr = `svg fill="currentColor...err } ) }) }) cheerio 是一个 nodejs 下类似 jquery api, 主要是利用 cheerio 将字符串中的 d 和 glyph-name 写到一个...以上就是本文全部内容,希望这篇文章对大家有所帮助,也可以参考我往期的文章或者在评论区交流你的想法和心得,欢迎一起探索前端。

    1.4K30

    使用Nodejs获取自己所有的CSDN博客附源码与效果图

    做数据统计,报表,必须要先有数据,于是写了一个使用Nodejs获取自己CSDN所有博客链接的程序, 并将这些博客数据通过页面展示出来。...框架搭建,技术选型 因为对Nodejs了解比较多,之前也做过类似的功能,所有后端就用Nodejs,框架使用express,异步操作库使用async,因为前端只有一个页面,就不用前后端分离的形式了,直接html...+jquery, 发送请求使用superagent 解析html使用 cheerio, npm install -g express-generator express --view=ejs blog-tool...获取一个http路径中的html源码,使用总页数控制循环调用函数,并将当前页码拼接到请求的url上。...函数 getOnePageBlogLink的内容是这样的,使用superagent获取html,cheerio对html进行解析,拿到需要的数据,文章标题,文章链接 var getOnePageBlogLink

    63010
    领券