Hướng dẫn how do i parse an html page in node js? - làm cách nào để phân tích cú pháp một trang html trong nút js?
Cập nhật tháng 11 năm 2020Tôi đã tìm kiếm các thư viện trình phân tích cú pháp NodeJS HTML hàng đầu. Show
Vì các trường hợp sử dụng của tôi không yêu cầu thư viện có nhiều tính năng, tôi có thể tập trung vào sự ổn định và hiệu suất. Theo sự ổn định, tôi có nghĩa là tôi muốn thư viện được cộng đồng sử dụng đủ lâu để tìm lỗi và nó vẫn sẽ được duy trì và các vấn đề mở sẽ bị đóng lại. Thật khó để hiểu được tương lai của một thư viện nguồn mở, nhưng tôi đã thực hiện một bản tóm tắt nhỏ dựa trên 10 thư viện hàng đầu trong OpenBase.. Tôi chia thành 2 nhóm theo cam kết cuối cùng (và trên mỗi nhóm, đơn đặt hàng theo GitHub bắt đầu): Cam kết cuối cùng là trong 6 tháng qua: JSdom - htmlparser2 - Parse5 - Swagger -Parser - HTML-parse-Stringify- 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.213170. Node-HTML-Parser- 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.213171. Cam kết cuối cùng là 6 tháng trở lên: Cheerio - 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.213172. KOA -Bodyparser - 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.213173. Sax -JS - 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.213174. DRAFTJS-TO-HTML- 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.213175. Tôi đã chọn Node-HTML-Parser vì nó có vẻ yên tĩnh nhanh và rất năng động vào lúc này. . . 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 Cài đặtnpm install --save node-html-parser
Màn biểu diễn-2022-08-10 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 thử nghiệm với HTMLPARSER-BENCEN. Cách sử dụngimport { parse } from 'node-html-parser'; const root = parse(' var HTMLParser = require('node-html-parser'); var root = HTMLParser.parse(' Phương pháp toàn cầuParse (dữ liệu [, tùy chọn])Phân tích dữ liệu được cung cấp và trả về gốc của DOM được tạo.
hợp lệ (dữ liệu [, tùy chọn])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. Lớp
Phương pháp htmlelementtrimRight()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. removeWhitespace()Loại bỏ khoảng trắng trong cây con này. querySelectorAll(selector)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. querySelector(selector)Truy vấn chọn bộ chọn CSS để tìm nút phù hợp. getElementsByTagName(tagName)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ố. closest(selector)Truy vấn phần tử gần nhất bởi bộ chọn CSS. appendChild(node)Nối một nút trẻ vào trẻ con insertadjacenthtml (ở đâu, html)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. setAttribution (khóa: chuỗi, giá trị: chuỗi)Đặt thuộc tí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.213179 thành import { parse } from 'node-html-parser'; const root = parse('0. Setattribut (attrs: Record)Đặt các thuộc tính của phần tử. removeAttribution (khóa: chuỗi)Xóa thuộc tính import { parse } from 'node-html-parser'; const root = parse('0. getAttribution (khóa: chuỗi)Nhận thuộc tính import { parse } from 'node-html-parser'; const root = parse('0. Exchangechild (OldNode: Node, NewNode: Node)Trao đổi trẻ em với đứa trẻ mới. removechild (nút: nút)Xóa nút trẻ. toString()Giống như Outerhtml set_content (nội dung: chuỗi | nút | nút [])Đặ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. remove()Loại bỏ phần tử hiện tại. Thay thế (... nút: (chuỗi | nút) [])Thay thế phần tử hiện tại bằng (các) nút khác. Danh sách lớpclassList.addThêm tên lớp. classList.Repace (cũ: chuỗi, mới: chuỗi)Thay thế tên lớp bằng một tên khác. classList.remove()Xóa tên lớp. classList.toggle (className: String): voidChuyển đổi lớp học. Xóa nó nếu nó đã được bao gồm, nếu không thì thêm. ClassList.Contains (ClassName: String): BooleanTrả về đúng nếu ClassName đã có trong danh sách lớp. classList.valueNhận tên lớp. clone()Sao chép một nút. getEuityById (id: chuỗi): htmlelement;Nhận phần tử bằng ID của nó. Thuộc tính htmlelementchữ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ư import { parse } from 'node-html-parser'; const root = parse('3. (chậm lần đầu tiên) RAWTEXTĐượ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ó import { parse } from 'node-html-parser'; const root = parse('4 trong đó. (Nhanh) TagNameNhận hoặc đặt tên thẻ của htmlelement. THÔNG BÁO: Giá trị trả về sẽ là chuỗi chữ hoa. Cấu trúcNhận văn bản có cấu trúc. kết cấuNhận cấu trúc DOM. FirstChildNhận nút con đầu tiên. con cuối cùngNhận nút con cuối cùng. Nội tâmĐặt hoặc nhận bên trong. OuterhtmlNhận bên ngoài. NextsiblingTrả 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. NextErementsiblingTrả 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ước đó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ước đâyTrả 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. TextContentNhận hoặc đặt TextContent của phần tử hiện tại, hiệu quả hơn SET_Content. thuộc tínhNhậ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. phạm viCác chỉ mục bắt đầu và kết thúc mã nguồn tương ứng (IE [0, 40]) Làm thế nào để bạn phân tích một trang HTML?Nếu bạn chỉ muốn phân tích HTML và HTML của bạn được dành cho phần thân tài liệu của bạn, bạn có thể làm như sau: (1) var div = document.createelement ("div"); (2) div.innerhtml = đánh dấu; (3) kết quả = div.childnodes; --- Điều này cung cấp cho bạn một bộ sưu tập trẻ em và nên làm việc không chỉ trong IE8 mà ngay cả trong IE6-7.var div=document. createElement("DIV"); (2) div. innerHTML = markup; (3) result = div. childNodes; --- This gives you a collection of childnodes and should work not just in IE8 but even in IE6-7.
Làm cách nào để loại bỏ nút html js?Cách cạo một trang web trong nút bằng cách sử dụng Cheerio.. Bước 1 - Tạo một thư mục làm việc..... Bước 2 - Khởi tạo dự án..... Bước 3 - Cài đặt phụ thuộc..... Bước 4 - Kiểm tra trang web bạn muốn cạo..... Bước 5 - Viết mã để xóa dữ liệu .. Làm cách nào để chọn phần tử HTML trong nút JS?JavaScript cung cấp sáu phương thức để chọn một phần tử từ tài liệu ... getEuityById - phần tử tìm kiếm bởi Element_id .. getElementsByTagName - phần tử tìm kiếm theo tên thẻ (ví dụ: span, div). getElementsByClassName - phần tử tìm kiếm theo tên lớp .. getElementsByName - phần tử tìm kiếm theo thuộc tính tên .. Chúng ta có thể phân tích HTML không?Phân tích phân tích có nghĩa là phân tích và chuyển đổi một chương trình thành một định dạng nội bộ mà môi trường thời gian chạy thực sự có thể chạy, ví dụ như công cụ JavaScript bên trong các trình duyệt.Trình duyệt phân tích cú pháp HTML vào cây dom.Phân tích cú pháp HTML liên quan đến việc xây dựng mã thông báo và xây dựng cây.The browser parses HTML into a DOM tree. HTML parsing involves tokenization and tree construction. |