1. ผลิตภัณฑ์
  2.   Aspose.HTML
  3.   Aspose.HTML FOSS for Python

Aspose.HTML FOSS สำหรับ Python

แปลง HTML ให้เป็น DOM ตามมาตรฐาน, ใช้ CSS, และคำนวณสไตล์จาก Python — ฟรี, โอเพ่นซอร์ส, และบริสุทธิ์ Python.

ไลบรารี Python แบบโอเพ่นซอร์สสำหรับการประมวลผล HTML

Aspose.HTML FOSS for Python เป็นไลบรารีฟรีและโอเพ่นซอร์สสำหรับทำงานกับเอกสาร HTML ในแอปพลิเคชัน Python ติดตั้งด้วยคำสั่ง git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git เพียงครั้งเดียวและเริ่มทำการพาร์สมาร์กอัปเป็นโมเดลอ็อบเจ็กต์ของเอกสาร สร้างและแก้ไขต้นไม้ขององค์ประกอบ แนบสไตล์ชีต CSS แก้ไขสไตล์ที่คำนวณได้ และทำงานกับ URL และการเข้ารหัสอักขระ — ทั้งหมดใน Python แท้โดยไม่ต้องพึ่งพาเบราว์เซอร์

ไลบรารีนี้เปิดเผย API ที่มุ่งเน้นมาตรฐานซึ่งสร้างขึ้นรอบๆ HTMLDocument, Document, Element และ CSSStyleSheet พาร์สมาร์กอัปด้วย HTMLDocument.parse() สร้างและเชื่อมต่อโหนดด้วย Document.create_element() และ append_child() ค้นหาองค์ประกอบด้วย get_element_by_id() ทำสไตล์ให้พวกมันผ่าน CSSStyleSheet.replace_sync() และการประกาศ style ระดับองค์ประกอบ และอ่านผลลัพธ์กลับด้วย Element.get_computed_style() บล็อกการสร้างระดับล่าง — HTML Tokenizer, TreeBuilder, URL และ URLSearchParams แบบ WHATWG, และตัวตรวจจับสตรีมไบต์ detect_encoding() — พร้อมใช้งานเมื่อคุณต้องการควบคุมโดยตรง

Aspose.HTML FOSS มีใบอนุญาต MIT และถูกพัฒนาใน Python แท้ โดยต้องการ Python 3.10 หรือใหม่กว่า มันทำงานเหมือนกันบน Windows, Linux, และ macOS — รวมถึง CI runners, Docker containers, และสภาพแวดล้อมแบบ serverless สำหรับกลุ่มผลิตภัณฑ์ระดับองค์กร ดู Aspose.HTML — Enterprise Product Family.

HTML การแยกวิเคราะห์และการจัดการ DOM

  • แยกวิเคราะห์หน้าเต็มด้วย HTMLDocument.parse() หรือส่วนย่อยด้วย HTMLDocument.parse_fragment()
  • สร้างเอกสารโดยโปรแกรมด้วย Document.create_element() และ append_child()
  • ค้นหาโหนดด้วย Document.get_element_by_id() และอ่านแอตทริบิวต์ของมาร์กอัปผ่าน Element.get_attribute()
  • ตั้งค่าแอตทริบิวต์ด้วย Element.set_attribute() และกำหนดข้อความผ่าน Node.text_content
  • แปลงเป็นซีเรียลไลซ์ส่วนย่อยใด ๆ กลับเป็นมาร์กอัปด้วยฟังก์ชัน serialise()

ใครใช้การประมวลผล DOM

  • บริการแบ็กเอนด์ที่ทำความสะอาดหรือเขียนทับ HTML ที่ผู้ใช้ส่งเข้ามาก่อนการจัดเก็บ
  • ระบบประมวลผลเนื้อหาที่สกัดหรือปรับโครงสร้างส่วนของหน้าในระดับใหญ่
  • ชุดทดสอบที่ตรวจสอบโครงสร้างมาร์กอัปที่สร้างขึ้นใน CI

CSS สไตล์ชีตและสไตล์ที่คำนวณแล้ว

  • แยกวิเคราะห์ข้อความสไตล์ชีตด้วย CSSStyleSheet.replace_sync() และแนบมันผ่าน Document.attach_style_sheet()
  • ตั้งค่าการประกาศแบบอินไลน์ผ่านคุณสมบัติ style ของอิลิเมนต์ด้วย CSSStyleDeclaration.set_property()
  • แก้ไขการทำงานของ cascade — ความเฉพาะเจาะจง, กฎ inline-vs-author, และการสืบทอด — ด้วย Element.get_computed_style()
  • อ่านค่าที่แก้ไขแล้วกลับมาโดยใช้ CSSStyleDeclaration.get_property_value()

ใครใช้การคำนวณสไตล์

  • เครื่องมืออีเมลและจดหมายข่าวที่ตรวจสอบสไตล์ที่มีผลจริงก่อนส่ง
  • HTML sanitizers ที่ต้องรู้สไตล์ที่องค์ประกอบแสดงผลจริง
  • นักพัฒนาที่กำลังดีบักพฤติกรรม cascade และ specificity นอกเบราว์เซอร์

ตัวทำเครื่องหมายและการสร้างต้นไม้

  • ใช้งาน tokenizer HTML โดยตรงด้วย Tokenizer.tokenize() หรือ Tokenizer.tokenize_fragment()
  • ดำเนินการสร้างต้นไม้ตามมาตรฐานด้วย TreeBuilder.run()
  • แยกวิเคราะห์มาร์กอัปโดยตรงเป็นต้นไม้ด้วยฟังก์ชัน parse_html()

ใครใช้ Low-Level Parsing

  • Linters และ analyzers ที่ตรวจสอบ token streams แทนต้นไม้ที่เสร็จสมบูรณ์
  • เครื่องมือที่ต้องการการจัดการข้อผิดพลาดแบบกำหนดเองระหว่างการกู้คืน malformed-markup
  • โครงการการศึกษา ที่ศึกษาวิธีการทำงานของการพาร์ส HTML ตามมาตรฐาน

URLs และการเข้ารหัสอักขระ

  • แยกวิเคราะห์และตรวจสอบความถูกต้องของ URL ด้วย URL.parse() และ URL.can_parse()
  • อ่านและแก้ไขสตริง query ด้วย URLSearchParams — append(), get(), has(), delete()
  • ตรวจจับการเข้ารหัสของไบต์สตรีม (BOM และการดมกลิ่นเนื้อหา) ด้วย detect_encoding()
  • ทำให้ป้ายกำกับการเข้ารหัสเป็นชื่อมาตรฐานโดยใช้ get_canonical_name()

ใครใช้เครื่องมือ URL และการเข้ารหัส

  • ตัวรวบรวมและดึงข้อมูลที่ต้องแก้ไขและกำจัดสำเนาซ้ำของ URL อย่างเชื่อถือได้
  • กระบวนการนำเข้าที่จัดการเอกสาร legacy ที่มีการเข้ารหัสผสม
  • บริการที่ทำการแยกวิเคราะห์หรือเขียนทับพารามิเตอร์ query ฝั่งเซิร์ฟเวอร์

สร้าง DOM และแก้ไข Cascade ของ CSS

สร้างเอกสาร, แนบสไตล์ชีต, และอ่านสไตล์ที่คำนวณได้ — ตัวเลือก ID จะเหนือกฎคลาส:

from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync(".foo { color: red } #bar { color: blue }")
doc.attach_style_sheet(sheet)
style = el.get_computed_style()
print(style.get_property_value("color"))

สไตล์อินไลน์มีลำดับความสำคัญเหนือกว่า

การประกาศแบบอินไลน์มีความจำเพาะสูงกว่ากฎของสไตล์ชีตผู้เขียน:

from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync("div { color: red }")
doc.attach_style_sheet(sheet)
inline = el.style
inline.set_property("color", "blue")
print(el.get_computed_style().get_property_value("color"))

ตรวจจับการเข้ารหัสอักขระจากไบต์

ตรวจสอบการเข้ารหัสของสตรีมไบต์ดิบ รวมถึง BOM ด้วย และรับข้อความที่ถอดรหัสกลับมา:

from aspose_html.encoding.detection import detect_encoding
result = detect_encoding(b"\xef\xbb\xbf<p>x</p>")
print(result.encoding)
print(result.confidence)
print(result.text)

คำถามที่พบบ่อย

ใบอนุญาตอะไรที่ Aspose.HTML FOSS for Python ใช้?

ใบอนุญาต MIT — การใช้เชิงพาณิชย์ การแก้ไข และการแจกจ่ายทั้งหมดได้รับอนุญาต; ข้อกำหนดเดียวคือการคงการแจ้งลิขสิทธิ์ไว้กับสำเนาที่สำคัญ.

เวอร์ชันของ Python ใดที่ได้รับการสนับสนุน และฉันจะติดตั้งอย่างไร?

Python 3.10 หรือใหม่กว่า. ติดตั้งด้วย git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — การทำงานเป็น Python แท้โดยไม่มีการพึ่งพาเนทีฟ

ฉันจะแยกวิเคราะห์ HTML ให้เป็นเอกสารได้อย่างไร?

ใช้ HTMLDocument.parse() สำหรับหน้าเต็มหรือ HTMLDocument.parse_fragment() สำหรับมาร์กอัปบางส่วน; Document คือโรงงานสำหรับสร้างต้นไม้โดยโปรแกรมมิ่ง.

การทำงานของ cascade CSS รองรับความเฉพาะเจาะจงและ !important อย่างถูกต้องหรือไม่?

ใช่ — ค่าที่คำนวณได้จะตามความจำเพาะของตัวเลือก, การประกาศแบบอินไลน์มีลำดับสูงกว่ากฎของผู้เขียน, กฎของผู้เขียน !important มีลำดับสูงกว่าการประกาศแบบอินไลน์ที่ไม่สำคัญ, และการสืบทอดไหลจากพาเรนท์ไปยังลูก.

ไลบรารีนี้เรนเดอร์หน้าเว็บหรือแปลงเป็นรูปแบบอื่นหรือไม่?

ไม่. รุ่นปัจจุบันมุ่งเน้นที่การพาร์ส, การจัดการ DOM, การคำนวณสไตล์ CSS, โครงสร้างเลเอาต์, URL, และการเข้ารหัส — ไม่ทำการแปลงรูปแบบหรือการเรนเดอร์ภาพ/PDF.

JavaScript ทำงานโดยอัตโนมัติในระหว่างการพาร์สหรือไม่?

ไม่. การพาร์สไม่เคยรันสคริปต์; การประเมินค่าเป็นแบบชัดเจนและต้องสมัครเข้าร่วมผ่าน JSContext โดยการโหลดโมดูลถูกควบคุมโดย ModuleRegistry และ ModuleLoadPolicy

  

ทรัพยากรสนับสนุนและการเรียนรู้

 ภาษาไทย