FAST HTML SHARSER là một trình phân tích cú pháp HTML rất nhanh. Sẽ tạo ra một cây dom đơn giản hóa, với hỗ trợ truy vấn phần tử. Theo thiết kế, nó dự định phân tích các tệp HTML lớn với giá thấp nhất, do đó hiệu suất là ưu tiên hàng đầu. Vì lý do này, một số HTML bị dị tật có thể không thể phân tích chính xác, nhưng hầu hết các lỗi thông thường đều được đề cập [ví dụ: kiểu HTML4 không đóng Lưu ý: Khi sử dụng trình phân tích cú pháp HTML nhanh trong dự án TypeScript, phiên bản TypeScript tối thiểu được hỗ trợ là -2022-08-10 Được thử nghiệm với HTMLPARSER-BENCEN. Phân tích dữ liệu được cung cấp và trả về gốc của DOM được tạo. Dữ liệu, dữ liệu để phân tích cú pháp, data to parse Tùy chọn, Tùy chọn phân tích cú pháp, parse options Phân tích dữ liệu được cung cấp, trả về true nếu dữ liệu đã cho là hợp lệ và trả về sai nếu không. Trim phần tử từ bên phải [trong khối] sau khi nhìn thấy mẫu trong một văn bản. Loại bỏ khoảng trắng trong cây con này. Truy vấn chọn bộ chọn CSS để tìm các nút phù hợp. Lưu ý: Toàn bộ các bộ chọn CSS3 được hỗ trợ kể từ v3.0.0. Truy vấn chọn bộ chọn CSS để tìm nút phù hợp. Nhận tất cả các yếu tố với tên tagname được chỉ định. Lưu ý: Sử dụng * cho tất cả các yếu tố. Truy vấn phần tử gần nhất bởi bộ chọn CSS. Nối một nút trẻ vào trẻ con Phân tích văn bản được chỉ định là HTML và chèn các nút kết quả vào cây dom ở một vị trí được chỉ định. Đặt thuộc tính Đặt các thuộc tính của phần tử. Xóa thuộc tính Nhận thuộc tính Trao đổi trẻ em với đứa trẻ mới. Xóa nút trẻ. Giống như Outerhtml Đặt nội dung. THÔNG BÁO: Không đặt nội dung của nút gốc.Notice: Do not set content of the
root node. Loại bỏ phần tử hiện tại. Thay thế phần tử hiện tại bằng [các] nút khác. Thêm tên lớp. Thay thế tên lớp bằng một tên khác. Xóa tên lớp. Chuyển đổi lớp học. Xóa nó nếu nó đã được bao gồm, nếu không thì thêm. Trả về đúng nếu ClassName đã có trong danh sách lớp. Nhận tên lớp. Sao chép một nút. Nhận phần tử bằng ID của nó. Nhận giá trị văn bản không được phân loại của nút hiện tại và con cái của nó. Như Được thoát ra khỏi giá trị văn bản [AS-IS] của nút hiện tại và con cái của nó. Có thể có Nhận hoặc đặt tên thẻ của htmlelement. THÔNG BÁO: Giá trị trả về sẽ là chuỗi chữ hoa. Nhận văn bản có cấu trúc. Nhận cấu trúc DOM. Nhận nút con đầu tiên. Nhận nút con cuối cùng. Đặt hoặc nhận bên trong. Nhận bên ngoài. Trả về một tham chiếu đến nút con tiếp theo của cha mẹ của phần tử hiện tại. Trả về một tham chiếu đến phần tử con tiếp theo của cha mẹ của phần tử hiện tại. Trả về một tham chiếu đến nút con trước của cha mẹ của phần tử hiện tại. Trả về một tham chiếu đến phần tử con trước của cha mẹ của phần tử hiện tại. Nhận hoặc đặt TextContent của phần tử hiện tại, hiệu quả hơn SET_Content. Nhận tất cả các thuộc tính của phần tử hiện tại. THÔNG BÁO: Không cố gắng thay đổi giá trị trả về.Notice: do not try to change the returned value. Các chỉ mục bắt đầu và kết thúc mã nguồn tương ứng [IE [0, 40]]Trình phân tích cú pháp HTML nhanh
,
, v.v.]. Cài đặt
npm install --save node-html-parser
^4.1.2
.Màn biểu diễn
html-parser :24.1595 ms/file ± 18.7667
htmljs-parser :4.72064 ms/file ± 5.67689
html-dom-parser :2.18055 ms/file ± 2.96136
html5parser :1.69639 ms/file ± 2.17111
cheerio :12.2122 ms/file ± 8.10916
parse5 :6.50626 ms/file ± 4.02352
htmlparser2 :2.38179 ms/file ± 3.42389
htmlparser :17.4820 ms/file ± 128.041
high5 :3.95188 ms/file ± 2.52313
node-html-parser:2.04288 ms/file ± 1.25203
node-html-parser [last release]:2.00527 ms/file ± 1.21317
Cách sử dụng
import { parse } from 'node-html-parser';
const root = parse['
'];
console.log[root.firstChild.structure];
// ul#list
// li
// #text
console.log[root.querySelector['#list']];
// { tagName: 'ul',
// rawAttrs: 'id="list"',
// childNodes:
// [ { tagName: 'li',
// rawAttrs: '',
// childNodes: [Object],
// classNames: [] } ],
// id: 'list',
// classNames: [] }
console.log[root.toString[]];
//
root.set_content['var HTMLParser = require['node-html-parser'];
var root = HTMLParser.parse['
'];Phương pháp toàn cầu
Parse [dữ liệu [, tùy chọn]]
{
lowerCaseTagName: false, // convert tag name to lower case [hurts performance heavily]
comment: false, // retrieve comments [hurts performance slightly]
voidTag:{
tags: ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr'], // optional and case insensitive, default value is ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr']
addClosingSlash: true // optional, default false. void tag serialisation, add a final slash
},
blockTextElements: {
script: true, // keep text content when parsing
noscript: true, // keep text content when parsing
style: true, // keep text content when parsing
pre: true // keep text content when parsing
}
}hợp lệ [dữ liệu [, tùy chọn]]
Lớp
classDiagram
direction TB
class HTMLElement{
this trimRight[]
this removeWhitespace[]
Node[] querySelectorAll[string selector]
Node querySelector[string selector]
HTMLElement[] getElementsByTagName[string tagName]
Node closest[string selector]
Node appendChild[Node node]
this insertAdjacentHTML['beforebegin' | 'afterbegin' | 'beforeend' | 'afterend' where, string html]
this setAttribute[string key, string value]
this setAttributes[Record~string, string~ attrs]
this removeAttribute[string key]
string getAttribute[string key]
this exchangeChild[Node oldNode, Node newNode]
this removeChild[Node node]
string toString[]
this set_content[string content]
this set_content[Node content]
this set_content[Node[] content]
this remove[]
this replaceWith[[string | Node][] ...nodes]
ClassList classList
HTMLElement clone[]
HTMLElement getElementById[string id]
string text
string rawText
string tagName
string structuredText
string structure
Node firstChild
Node lastChild
Node nextSibling
HTMLElement nextElementSibling
Node previousSibling
HTMLElement previousElementSibling
string innerHTML
string outerHTML
string textContent
Record~string, string~ attributes
[number, number] range
}
class Node{
string toString[]
Node clone[]
this remove[]
number nodeType
string innerText
string textContent
}
class ClassList{
add[string c]
replace[string c1, string c2]
remove[string c]
toggle[string c]
boolean contains[string c]
number length
string[] value
string toString[]
}
class CommentNode{
CommentNode clone[]
string toString[]
}
class TextNode{
TextNode clone[]
string toString[]
string rawText
string trimmedRawText
string trimmedText
string text
boolean isWhitespace
}
Node --|> HTMLElement
Node --|> CommentNode
Node --|> TextNode
Node ..> ClassList
Phương pháp htmlelement
trimRight[]
removeWhitespace[]
querySelectorAll[selector]
querySelector[selector]
getElementsByTagName[tagName]
closest[selector]
appendChild[node]
insertadjacenthtml [ở đâu, html]
setAttribution [khóa: chuỗi, giá trị: chuỗi]
value
thành html-parser :24.1595 ms/file ± 18.7667
htmljs-parser :4.72064 ms/file ± 5.67689
html-dom-parser :2.18055 ms/file ± 2.96136
html5parser :1.69639 ms/file ± 2.17111
cheerio :12.2122 ms/file ± 8.10916
parse5 :6.50626 ms/file ± 4.02352
htmlparser2 :2.38179 ms/file ± 3.42389
htmlparser :17.4820 ms/file ± 128.041
high5 :3.95188 ms/file ± 2.52313
node-html-parser:2.04288 ms/file ± 1.25203
node-html-parser [last release]:2.00527 ms/file ± 1.21317
0.Setattribut [attrs: Record]
removeAttribution [khóa: chuỗi]
html-parser :24.1595 ms/file ± 18.7667
htmljs-parser :4.72064 ms/file ± 5.67689
html-dom-parser :2.18055 ms/file ± 2.96136
html5parser :1.69639 ms/file ± 2.17111
cheerio :12.2122 ms/file ± 8.10916
parse5 :6.50626 ms/file ± 4.02352
htmlparser2 :2.38179 ms/file ± 3.42389
htmlparser :17.4820 ms/file ± 128.041
high5 :3.95188 ms/file ± 2.52313
node-html-parser:2.04288 ms/file ± 1.25203
node-html-parser [last release]:2.00527 ms/file ± 1.21317
0.getAttribution [khóa: chuỗi]
html-parser :24.1595 ms/file ± 18.7667
htmljs-parser :4.72064 ms/file ± 5.67689
html-dom-parser :2.18055 ms/file ± 2.96136
html5parser :1.69639 ms/file ± 2.17111
cheerio :12.2122 ms/file ± 8.10916
parse5 :6.50626 ms/file ± 4.02352
htmlparser2 :2.38179 ms/file ± 3.42389
htmlparser :17.4820 ms/file ± 128.041
high5 :3.95188 ms/file ± 2.52313
node-html-parser:2.04288 ms/file ± 1.25203
node-html-parser [last release]:2.00527 ms/file ± 1.21317
0.Exchangechild [OldNode: Node, NewNode: Node]
removechild [nút: nút]
toString[]
set_content [nội dung: chuỗi | nút | nút []]
remove[]
Thay thế [... nút: [chuỗi | nút] []]
Danh sách lớp
classList.add
classList.Repace [cũ: chuỗi, mới: chuỗi]
classList.remove[]
classList.toggle [className: String]: void
ClassList.Contains [ClassName: String]: Boolean
classList.value
clone[]
getEuityById [id: chuỗi]: htmlelement;
Thuộc tính htmlelement
chữ
html-parser :24.1595 ms/file ± 18.7667
htmljs-parser :4.72064 ms/file ± 5.67689
html-dom-parser :2.18055 ms/file ± 2.96136
html5parser :1.69639 ms/file ± 2.17111
cheerio :12.2122 ms/file ± 8.10916
parse5 :6.50626 ms/file ± 4.02352
htmlparser2 :2.38179 ms/file ± 3.42389
htmlparser :17.4820 ms/file ± 128.041
high5 :3.95188 ms/file ± 2.52313
node-html-parser:2.04288 ms/file ± 1.25203
node-html-parser [last release]:2.00527 ms/file ± 1.21317
3. [chậm lần đầu tiên]RAWTEXT
html-parser :24.1595 ms/file ± 18.7667
htmljs-parser :4.72064 ms/file ± 5.67689
html-dom-parser :2.18055 ms/file ± 2.96136
html5parser :1.69639 ms/file ± 2.17111
cheerio :12.2122 ms/file ± 8.10916
parse5 :6.50626 ms/file ± 4.02352
htmlparser2 :2.38179 ms/file ± 3.42389
htmlparser :17.4820 ms/file ± 128.041
high5 :3.95188 ms/file ± 2.52313
node-html-parser:2.04288 ms/file ± 1.25203
node-html-parser [last release]:2.00527 ms/file ± 1.21317
4 trong đó. [Nhanh]TagName
Cấu trúc
kết cấu
FirstChild
con cuối cùng
Nội tâm
Outerhtml
Nextsibling
NextErementsibling
trước đó
trước đây
TextContent
thuộc tính
phạm vi
Chủ Đề