1. 製品
  2.   Aspose.HTML
  3.   Aspose.HTML FOSS for Python

Python 用 Aspose.HTML FOSS

標準準拠の DOM に HTML を解析し、CSS を適用し、Python からスタイルを計算します — 無料でオープンソース、純粋な Python。

オープンソース Python ライブラリ(HTML 処理用)

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 を参照してください。

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 処理を使用するのは誰ですか

  • ストレージ前にユーザーが送信した HTML をクリーンアップまたは書き換えるバックエンドサービス
  • 大規模にページフラグメントを抽出または再構築するコンテンツパイプライン
  • CI で生成されたマークアップ構造をアサートするテストスイート

CSS スタイルシートと計算されたスタイル

  • CSSStyleSheet.replace_sync() を使用してスタイルシートテキストを解析し、Document.attach_style_sheet() で添付します
  • 要素の style プロパティを介してインライン宣言を設定するには、CSSStyleDeclaration.set_property() を使用します
  • カスケード(特異性、インライン対オーサールール、継承)を解決するには、Element.get_computed_style() を使用します
  • 解決された値を取得するには、CSSStyleDeclaration.get_property_value() を使用します

スタイル計算を使用するのは誰ですか

  • 送信前に有効なスタイルを検証するメールおよびニュースレター用ツール
  • HTML サニタイザは、要素が実際にレンダリングされるスタイルを知る必要があります
  • 開発者がブラウザ外でカスケードと特異性の挙動をデバッグする

トークナイザーとツリー構築

  • HTML トークナイザーを Tokenizer.tokenize() または Tokenizer.tokenize_fragment() で直接駆動する
  • TreeBuilder.run() を使用して標準ベースのツリー構築を実行する
  • parse_html() 関数でマークアップを直接ツリーに解析する

低レベルパーシングを使用するのは誰ですか

  • 完了したツリーではなくトークンストリームを検査するリンターやアナライザー
  • 不正なマークアップのリカバリ中にカスタムエラーハンドリングが必要なツール
  • 標準ベースの HTML パーシングの仕組みを研究する教育プロジェクト

URL と文字エンコーディング

  • URL.parse() と URL.can_parse() を使用して URL を解析および検証する
  • URLSearchParams を使用してクエリ文字列を読み取り・編集する — append(), get(), has(), delete()
  • detect_encoding() を使用してバイトストリームのエンコードを検出する(BOM とコンテンツスニッフィング)
  • 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 License — 商用利用、改変、再配布はすべて許可されています;唯一の要件は実質的なコピーに著作権表示を残すことです。

どの 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 を正しく処理しますか?

はい — 計算された値はセレクタの特異性に従い、インライン宣言は作者ルールより優先され、!important 作者ルールは重要でないインライン宣言より優先され、継承は親から子へ流れます。

このライブラリはページをレンダリングしますか、それとも他の形式に変換しますか?

いいえ。現在のリリースは、パース、DOM操作、CSSスタイル計算、レイアウト構造、URL、エンコーディングに焦点を当てており、フォーマット変換や画像/PDFのレンダリングは行いません。

JavaScript は解析中に自動的に実行されますか?

いいえ。Parsing は決してスクリプトを実行しません。評価は明示的で、JSContext を介したオプトイン方式で行われ、モジュールのロードは ModuleRegistry と ModuleLoadPolicy によって制御されます。

  

サポートと学習リソース

 日本語