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

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

การให้สิทธิ์และโอเพ่นซอร์ส

สัญญาอนุญาตใดที่ 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.

ดูเพิ่มเติม

 ภาษาไทย