成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

值得推薦的HTML文檔JS解析庫

開發 前端
HTML即一切,所有打算進行Web編程的人都應該熟悉HTML,并了解如何解析HTML。尤其對前端工程師來說這更是基礎,本文我們就來介紹一下JS下常見的HTML解析庫。

HTML即一切,所有打算進行Web編程的人都應該熟悉HTML,并了解如何解析HTML。尤其對前端工程師來說這更是基礎,本文我們就來介紹一下JS下常見的HTML解析庫。

DOMParser

JavaScript和jQuery的DOM操作功能非常適合簡單HTML片段的解析。在實際編程中,如果要以編程方式解析DOM完整HTML或XML,則需要一個更好的解決方案,那就是DOMParser,它是所有現代數瀏覽器都支持的功能。

通過使用DOMParser,可以輕松解析HTML文檔。但是,一般需要通過欺騙瀏覽器來實現解析,比如,通過向當前文檔添加新元素。

DOMParser的用法非常簡單明了:

  1. let domParser = new DOMParser(); 
  2. let doc = domParser.parseFromString(stringContainingXMLSource, "application/xml"); 
  3. domParser = new DOMParser(); 
  4. doc = domParser.parseFromString(stringContainingSVGSource, "image/svg+xml"); 
  5. domParser = new DOMParser(); 
  6. doc = domParser.parseFromString(stringContainingHTMLSource, "text/html"); 

Cheerio

專為服務器設計的核心jQuery的快速,靈活和精致的實現。

Cheerio看起來像jQuery,但是不支持瀏覽器。Cheerio可以解析HTML并使其易于操作,但不會像瀏覽器中那樣解釋HTML,解析出與瀏覽器不同的內容,并且解析的結果不會直接發送給用戶。

Cheerio實現了jQuery子集,去掉了jQuery中所有與DOM不一致或者是用來填補瀏覽器的東西,重現了jQuery最美妙的API

由于使用了極其簡潔而又標準的DOM模型, Cheerio對文檔的轉換,操作,渲染都極其的高效。

JavaScript開發人員都應該熟悉Cheerio的語法和用法:

  1. var chro = require('cheerio'), 
  2. $ = chio.load('<h1 class="title">Hello World!</h1>'); 
  3. $('h1.title').text('Hello Chongchong!'); 
  4. $('h1').attr('id', 'welcome'); 
  5. $.html();結果:<h1 class="title" id=" welcome ">Hello Chongchong!</h1> 

jsdom

jsdom是很多Web標準(尤其是WHATWG DOM和 HTML 標準)純JavaScript實現,可與Node.js結合使用。jsdom項目的目標是模擬Web瀏覽器的子集,從而滿足測試和抓取實際的Web應用程序。

jsdom不僅僅是HTML解析器,它還可以當成瀏覽器。在解析的上下文中,如果要解析的數據中省略了必要的標記,它會自動添加必要的標記。例如,如果沒有html標簽,它將像瀏覽器一樣隱式地添加它。

還可以選擇指定一些屬性,例如文檔,引薦來源網址或用戶代理的URL。如果需要解析包含本地URL的鏈接,則該URL特別有用。

由于它實際上與解析無關,因此只提到jsdom具有(虛擬)控制臺,對cookie的支持等。總之,需要模擬瀏覽器環境

它還可以處理外部資源。如有需求jsdom可以用來加載并執行JS腳本。

  1. const jsdom = require("jsdom"); 
  2. const { JSDOM } = jsdom;const dom = new JSDOM('<!DOCTYPE html><p>Hello, Chongchong!</p>'); 
  3. console.log(dom.window.document.querySelector("p").textContent); 

結果:

  1. "Hello, Chongchong!" 

parse5

parse5提供了處理HTML時所需的幾乎所有內容。Parse5庫,目標是構建其他工具,但也可以實現HTML解析以完成簡單任務。Parse5易于使用,但是并不提供瀏覽器為提供的操作DOM的方法(例如getElementById)。

parse5衍生出了一系列采用它的令人印象深刻的項目:jsdom,Angular2和Polymer。如果需求為對HTML的高級操作或解析的可靠基礎,那么顯然這是一個不錯的選擇。

  1. const parse5 = require('parse5'); 
  2.  
  3. const document = parse5.parse('<!DOCTYPE html><html><head></head><body>Hello Chongchong!</body></html>'); 
  4.  
  5. console.log(document.childNodes[1].tagName); 

總結

本文我們介紹幾個JS下常見的Html解析庫。根據標準,實際的HTML格式語法格式是需要容錯的。當時這在庫很難簡單完美的實現。如果你有更好的推薦,歡迎和大家一起分享。

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2021-04-12 11:09:13

React開發

2022-08-05 09:25:27

React庫JavaScript工具

2020-10-28 09:37:08

React代碼數據

2023-03-29 08:00:00

PostgreSQL數據庫

2023-12-28 07:39:58

C#項目框架

2021-06-17 09:00:00

人工智能機器學習開源

2020-11-30 09:00:00

WebAngular開發

2019-07-05 08:24:39

JavaScript動畫庫應用程序

2019-08-02 10:00:03

數據庫圖形數據庫

2021-12-26 09:22:44

前端Css圖標

2025-02-03 00:35:00

框架程序Windows

2022-02-08 18:53:12

SpringBoot性能優化

2023-06-27 07:31:02

動畫庫React參數

2022-07-20 08:55:10

編輯器VueTiptap

2022-04-24 08:00:00

開發UI組件

2025-03-27 08:11:17

2020-01-02 14:25:50

工具代碼開發

2020-11-11 18:56:32

工具代碼開發

2022-09-30 08:31:06

TypeScriptJavaScrip

2022-01-12 00:58:24

Java云框架開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 青青草一区二区三区 | 日韩一区二区久久 | 国产激情91久久精品导航 | 国产精品一区二区欧美黑人喷潮水 | 亚洲人精品 | 天天干天天草 | 国产精品久久久久久一区二区三区 | 99久久免费精品国产男女高不卡 | 91精品国产色综合久久 | 久久99国产精品久久99果冻传媒 | 久久av.com| 国产精品国产馆在线真实露脸 | 国产99精品| 色接久久 | 国产精品久久久久久久久图文区 | 一区二区三区中文字幕 | 国产精品1区 | 欧美二区乱c黑人 | 日本亚洲欧美 | av黄色在线观看 | 国产成人网 | 中文字幕高清 | 最新黄色毛片 | 久久久久久久久久久高潮一区二区 | 亚洲欧美激情国产综合久久久 | 亚洲日韩中文字幕一区 | 一区日韩 | 久久久无码精品亚洲日韩按摩 | av一级在线观看 | 国产精品不卡 | 日本又色又爽又黄又高潮 | 亚洲国产一区二区视频 | 精品国产乱码久久久久久闺蜜 | 亚洲国产精品一区二区三区 | 久久久久久999 | 久久精品中文 | 99精品一区二区三区 | 国产精品免费一区二区三区四区 | 国产精品a一区二区三区网址 | 91色视频在线观看 | 国产午夜精品一区二区三区在线观看 |