מבוא
Aspose.HTML FOSS עבור Python היא ספרייה קוד פתוח חדשה לעבודה עם מסמכי HTML ב-Python. היא מנתחת סימון למודל אובייקט מסמך מבוסס תקן, מאפשרת לך לבנות ולשנות עצי אלמנטים באופן תכנותי, ומפתרת CSS — כולל ספציפיות, הצהרות משולבות וירושה — לתוך סגנונות מחושבים שאתה יכול לקרוא חזרה מכל אלמנט.
הספרייה מתמקדת בתרחישי צד השרת וכלי שבהם דפדפן אינו זמין או אינו רצוי: שירותים שמנקים HTML מאוחסנים, צינורות שמארגנים מחדש קטעי דף, וחבילות בדיקה שמאמתות את הסימון שנוצר. היא מותקנת מ-PyPI כ-aspose-html-foss, בעלת רישיון MIT, ומיושמת ב-Python טהור עבור Python גרסה 3.10 ומעלה, כך שהיא מתנהגת באופן זהה במחשבי מפתחים, במפעילי CI ובשרתים.
מעבר ל-DOM ולליבת CSS, החבילה מספקת בלוקים פרקטיים לבנייה שהעיבוד של HTML בדרך כלל דורש בכל מקרה: מחלקת טוקניזר ובונה עצים של HTML שבהם ניתן להשתמש ישירות, מחלקות URL ו-URLSearchParams בסגנון WHATWG, וגלאי קידוד של זרם בתים.
מה נכלל
בנייה ושינוי של ה-DOM
שכבת ה-DOM נבנית סביב Document, Element ו-Node. צור אלמנטים עם Document.create_element(), חבר אותם יחד עם append_child(), הגדר תכונות סימון עם Element.set_attribute(), וחפש צמתים שוב עם Document.get_element_by_id(). דפים מלאים וחלקי דף מפורקים באמצעות HTMLDocument.parse() ו-HTMLDocument.parse_fragment().
from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)
החלת גיליונות סגנונות וקריאת סגנונות מחושבים
CSSStyleSheet.replace_sync() מנתח טקסט של גיליון סגנונות, Document.attach_style_sheet() משגר אותו לפעולה, ו-Element.get_computed_style() פותר את המדרג. התוצאה מכבדת את הספציפיות של הבורר — כאן כלל ה-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"))
הצהרות משולבות והקזד
כל אלמנט חושף CSSStyleDeclaration חי דרך המאפיין style שלו. הצהרות משולבות המוגדרות עם set_property() נושאות ספציפיות גבוהה יותר מהכללים של גיליון הסגנונות של היוצר, ו-get_computed_style() משקפת זאת:
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"))
מפרק אסימונים ובונה עץ
כאשר אתה צריך שליטה רבה יותר מעץ מוגמר, השכבות התחתונות הן API ציבוריות. Tokenizer.tokenize() ו-Tokenizer.tokenize_fragment() משדרים את זרם האסימונים לחלק של סימון, TreeBuilder.run() מבצע בניית עץ על בסיס תקנים, והפונקציה parse_html() עוברת מסימון לעץ בקריאה אחת. אלו הם אותם רכיבים שהנתיב ברמת העל משתמש.
כתובות URL וקידודי תווים
URL.parse() ו-URL.can_parse() מטפלים בניתוח וולידציה של URL בסגנון WHATWG, עם URLSearchParams (append(), get(), has(), delete()) למחרוזות שאילתה. עבור בתים גולמיים, detect_encoding() מזהה את הקידוד — כולל סימני סדר בתים — ומחזיר את הטקסט המפוענח יחד עם רמת ביטחון, בעוד get_canonical_name() מנרמל תוויות קידוד:
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)
התחלה מהירה
התקנה מ-PyPI:
asposefoss/html is not yet published — build from source until it ships. See the project README for build instructions.לאחר מכן בנה מסמך, עצב אותו וקרא את התוצאה המחושבת:
from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync("#bar { color: blue }")
doc.attach_style_sheet(sheet)
style = el.get_computed_style()
print(style.get_property_value("color"))
קוד פתוח ורישוי
Aspose.HTML FOSS עבור Python משוחרר תחת רישיון MIT, ולכן שימוש מסחרי, שינוי והפצה מחדש מותרים כולם. קוד המקור זמין ב-GitHub והחבילה מתפרסמת ב-PyPI בשם aspose-html-foss.