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 אחת והתחל לנתח סימון ל-document object model, לבנות ולשנות עצי אלמנטים, לצרף גיליונות סגנון 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, מכולות Docker וסביבות ללא שרת. למשפחת המוצרים הארגונית, ראה 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

  • שירותי Backend שמנקים או משנים HTML שהוגש על ידי משתמש לפני האחסון
  • צינורות תוכן שמחלצים או משנים מבנה של קטעי דף בקנה מידה גדול
  • חבילות בדיקה שמוודאות את מבנה ה-Markup שנוצר ב-CI

CSS גיליונות סגנון ו-סגנונות מחושבים

  • פרש טקסט של גיליון סגנונות עם CSSStyleSheet.replace_sync() וצרף אותו דרך Document.attach_style_sheet()
  • הגדר הצהרות אינליין דרך המאפיין style של האלמנט עם CSSStyleDeclaration.set_property()
  • פתר את הסדר — ספציפיות, כללי אינליין-לעומת-מחבר, והורשה — עם Element.get_computed_style()
  • קרא ערכים פתורים בחזרה עם CSSStyleDeclaration.get_property_value()

מי משתמש ב-Style Computation

  • כלי דוא"ל וניוזלטר שמוודאים סגנונות אפקטיביים לפני שליחה
  • מנקי HTML שצריך לדעת את הסגנון שהאלמנט בפועל מציג
  • מפתחים שמבצעים ניפוי באגים של התנהגות הקסקדה והספציפיות מחוץ לדפדפן

Tokenizer ובניית עץ

  • הפעל את הטוקניזר HTML ישירות עם Tokenizer.tokenize() או Tokenizer.tokenize_fragment()
  • הפעל בניית עץ לפי תקנים עם TreeBuilder.run()
  • פענח סימון ישירות לעץ בעזרת הפונקציה parse_html()

מי משתמש בניתוח ברמת-נמוכה

  • Linters ומנתחים שבודקים זרמי אסימונים במקום עצים מוגמרים
  • כלים שצריכים טיפול מותאם אישית בשגיאות במהלך התאוששות של malformed-markup
  • פרויקטים חינוכיים הלומדים כיצד פענוח מבוסס-תקנים של HTML פועל

כתובות URL וקידודי תווים

  • ניתוח ואימות של כתובות URL עם URL.parse() ו-URL.can_parse()
  • קריאה ועריכה של מחרוזות שאילתא עם URLSearchParams — append(), get(), has(), delete()
  • זיהוי קידודי זרם בתים (BOM ו-content sniffing) עם detect_encoding()
  • נרמול תוויות קידוד לשמות קנוניים עם get_canonical_name()

מי משתמש ב-URL ובכלי קידוד

  • סורקים ומקבלי מידע שצריכים לפתור ולבצע דדופליקציה של כתובות URL באופן אמין
  • צינורות קלט המעבדים מסמכים ישנים עם קידודים מעורבים
  • שירותים שמפרשים או משנים פרמטרים של שאילתות בצד השרת

בנה DOM ופתור את קסקייד 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 הוא המפעל לבניית עצים באופן תוכניתי.

האם סדרת CSS מטפלת במידת ספציפיות וב-!important בצורה נכונה?

כן — ערכים מחושבים פועלים לפי ספציפיות של סלקטור, הצהרות inline עולות על חוקי המחבר, חוקי המחבר !important עולים על הצהרות inline שאינן חשובות, והורשה זורמת מהורה לילד.

האם הספרייה מציגה דפים או ממירה לפורמטים אחרים?

לא. הגרסה הנוכחית מתמקדת בניתוח, מניפולציית DOM, חישוב סגנון CSS, מבני פריסה, כתובות URL וקידודים — ללא המרת פורמט או רינדור של תמונות/PDF.

האם JavaScript מתבצע אוטומטית במהלך הפענוח?

לא. פענוח לעולם לא מריץ סקריפטים; ההערכה היא מפורשת ובחירה מרצון דרך JSContext עם טעינת מודול הנשלטת על ידי ModuleRegistry ו-ModuleLoadPolicy.

  

משאבי תמיכה ולמידה

 עברית