คำถามที่พบบ่อย
การให้สิทธิ์และโอเพ่นซอร์ส
สัญญาอนุญาตใดที่ Aspose.HTML FOSS สำหรับ Python ใช้?
ไลบรารีถูกปล่อยภายใต้สัญญาอนุญาต MIT. ข้อความเต็มจะมาพร้อมกับไฟล์ LICENSE ไฟล์ใน คลัง GitHub.
ฉันสามารถใช้มันในผลิตภัณฑ์เชิงพาณิชย์ได้หรือไม่?
ใช่. สัญญาอนุญาต MIT อนุญาตให้ใช้เชิงพาณิชย์, การแก้ไข, การกระจายซ้ำ, และการให้สิทธิ์ย่อย. ข้อกำหนดเดียวคือการคงข้อความแจ้งลิขสิทธิ์และข้อความสัญญาอนุญาตไว้กับสำเนาที่สำคัญ.
การติดตั้งและความต้องการ
ฉันจะติดตั้งไลบรารีอย่างไร และเวอร์ชันของ Python ใดที่รองรับ?
ติดตั้งด้วย git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git. ไลบรารีต้องการ Python 3.10 หรือใหม่กว่า; รุ่นปัจจุบันคือ 0.1.0.
มีการพึ่งพาแบบเนทีฟหรือไม่?
ไม่มี. การทำงานเป็น Python แท้ — ไม่มีเอนจินเบราว์เซอร์, ไม่มีส่วนขยายที่คอมไพล์ — ดังนั้นจึงทำงานแบบเดียวกันบน Windows, Linux, และ macOS, รวมถึง CI runners และคอนเทนเนอร์.
API Usage
ฉันจะพาร์ส HTML ให้เป็นเอกสารอย่างไร?
ใช้ HTMLDocument.parse() สำหรับหน้าเต็มหรือ HTMLDocument.parse_fragment() สำหรับ markup บางส่วน. สำหรับการสร้างแบบโปรแกรม, Document คือโรงงานโหนด:
from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)ฉันจะใช้ CSS และอ่านสไตล์ที่ได้อย่างไร?
พาร์สข้อความสไตล์ชีตด้วย CSSStyleSheet.replace_sync(), แนบด้วย Document.attach_style_sheet(), และอ่านผลลัพธ์ที่ได้ด้วย Element.get_computed_style():
from aspose_html.cssom import CSSStyleSheet
sheet = CSSStyleSheet()
sheet.replace_sync("#bar { color: blue }")
doc.attach_style_sheet(sheet)
print(el.get_computed_style().get_property_value("color"))กระบวนการ cascade จัดการความเฉพาะเจาะจงและ !important อย่างถูกต้องหรือไม่?
ใช่. ค่าที่คำนวณได้จะปฏิบัติตามความเฉพาะเจาะจงของตัวเลือก (ID มากกว่า class มากกว่า type), การประกาศแบบอินไลน์เหนือกฎของผู้เขียน, และ !important กฎของผู้เขียนเหนือการประกาศแบบอินไลน์ที่ไม่มี !important. การสืบทอดไหลจากพาเรนท์ไปยังลูกสำหรับคุณสมบัติที่สามารถสืบทอดได้.
ฉันสามารถใช้ tokenizer และ tree builder ได้โดยตรงหรือไม่?
ใช่ — Tokenizer.tokenize() ส่งออกสตรีม token ตามมาตรฐาน, TreeBuilder.run() ทำการสร้างต้นไม้, และ parse_html() ห่อหุ้ม pipeline ทั้งหมดในหนึ่งการเรียก.
ฉันจะทำงานกับ URL และการเข้ารหัสอักขระอย่างไร?
URL.parse() และ URL.can_parse() ให้การจัดการ URL แบบ WHATWG พร้อม URLSearchParams สำหรับ query strings. สำหรับ raw bytes, detect_encoding() คืนค่าการเข้ารหัส, ระดับความมั่นใจ, และข้อความที่ถอดรหัส.
ข้อจำกัดที่รู้จัก
มี API ใดที่มีอยู่แต่ยังไม่ได้ทำงานหรือไม่?
มีสมาชิกจำนวนเล็กน้อยที่ถูกประกาศแต่ยังไม่ทำงานในขณะนี้ รวมถึง CSSRule.type, CSSRule.css_text และ HTMLImageElement.decode. ไฟล์ limitations.md ในโมเดลความรู้ติดตามสิ่งเหล่านี้; อย่าอ้างอิงพวกมัน.
ไลบรารีนี้เรนเดอร์หน้าเว็บหรือแปลงเป็นรูปแบบอื่นหรือไม่?
ไม่. รุ่นปัจจุบันมุ่งเน้นที่การพาร์ส, การจัดการ DOM, การคำนวณสไตล์ CSS, โครงสร้างการจัดวาง, URL, และการเข้ารหัส. มันไม่ได้รวมการแปลงรูปแบบหรือการเรนเดอร์ภาพ/PDF.
การทำงานของ JavaScript จะทำโดยอัตโนมัติระหว่างการพาร์สหรือไม่?
ไม่. การพาร์สจะไม่รันสคริปต์ใด ๆ การประเมินสคริปต์ต้องทำอย่างชัดเจนและต้องเลือกใช้ผ่าน JSContext, โดยการโหลดโมดูลจะถูกควบคุมโดย ModuleRegistry และ ModuleLoadPolicy.