Aspose.HTML FOSS for Python は、Python アプリケーションで HTML ドキュメントを扱うための無料のオープンソースライブラリです。git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git コマンドを1つ実行するだけでインストールでき、マークアップをドキュメントオブジェクトモデルにパースし、要素ツリーを構築・変更し、CSS スタイルシートを添付し、計算されたスタイルを解決し、URL と文字エンコーディングを扱うことができます — すべてブラウザ依存なしの純粋な Python で実行できます。
このライブラリは、HTMLDocument、Document、Element、CSSStyleSheet を中心とした標準指向の API を提供します。HTMLDocument.parse() でマークアップをパースし、Document.create_element() と append_child() でノードを作成・接続し、get_element_by_id() で要素を検索し、CSSStyleSheet.replace_sync() と要素レベルの style 宣言でスタイルを適用し、Element.get_computed_style() で結果を取得します。低レベルの構成要素 — HTML Tokenizer、TreeBuilder、WHATWG スタイルの URL と URLSearchParams、および detect_encoding() バイトストリーム検出器 — は、直接制御が必要なときに利用できます。
Aspose.HTML FOSS は MIT ライセンスで、純粋な Python で実装されており、Python 3.10 以降が必要です。Windows、Linux、macOS で同一に動作し、CI ランナー、Docker コンテナ、サーバーレス環境も含まれます。エンタープライズ製品ファミリーについては、Aspose.HTML — Enterprise Product Family を参照してください。
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() 関数を使用して任意のサブツリーをマークアップにシリアライズしますCSSStyleSheet.replace_sync() を使用してスタイルシートテキストを解析し、Document.attach_style_sheet() で添付しますstyle プロパティを介してインライン宣言を設定するには、CSSStyleDeclaration.set_property() を使用しますElement.get_computed_style() を使用しますCSSStyleDeclaration.get_property_value() を使用しますTokenizer.tokenize() または Tokenizer.tokenize_fragment() で直接駆動するTreeBuilder.run() を使用して標準ベースのツリー構築を実行するparse_html() 関数でマークアップを直接ツリーに解析するURL.parse() と URL.can_parse() を使用して URL を解析および検証するURLSearchParams を使用してクエリ文字列を読み取り・編集する — append(), get(), has(), delete()detect_encoding() を使用してバイトストリームのエンコードを検出する(BOM とコンテンツスニッフィング)get_canonical_name() を使用してエンコードラベルを正規の名前に正規化するドキュメントを作成し、スタイルシートを添付して、計算されたスタイルを取得します — 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)
MIT License — 商用利用、改変、再配布はすべて許可されています;唯一の要件は実質的なコピーに著作権表示を残すことです。
Python 3.10 以降。git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — 実装は純粋な Python で、ネイティブ依存はありません。
HTMLDocument.parse() を完全なページに、HTMLDocument.parse_fragment() を部分的なマークアップに使用します; Document はプログラムでツリーを構築するためのファクトリです。
はい — 計算された値はセレクタの特異性に従い、インライン宣言は作者ルールより優先され、!important 作者ルールは重要でないインライン宣言より優先され、継承は親から子へ流れます。
いいえ。現在のリリースは、パース、DOM操作、CSSスタイル計算、レイアウト構造、URL、エンコーディングに焦点を当てており、フォーマット変換や画像/PDFのレンダリングは行いません。
いいえ。Parsing は決してスクリプトを実行しません。評価は明示的で、JSContext を介したオプトイン方式で行われ、モジュールのロードは ModuleRegistry と ModuleLoadPolicy によって制御されます。