6

Python で XML minidom (xml.dom.minidom) を使用していますが、XML にエラーがあるとパーサーが強制終了されます。たとえばブラウザのように、それらを無視することは可能ですか? Python でブラウザーを作成しようとしていますが、タグに完全な互換性がない場合、例外がスローされます。

4

3 に答える 3

12

BeautifulSoupというライブラリがあります。探しているものだと思います。無効な XML を解析しようとしているため、通常の XML パーサーは機能しません。BeautifulSoup はより耐障害性が高く、無効な XML から情報を抽出できます。

Beautiful Soup は、スクリーン スクレイピングのような迅速なターンアラウンド プロジェクト用に設計された Python HTML/XML パーサーです。次の 3 つの機能が強力です。

  1. 美しいスープは、悪いマークアップを与えても窒息しません。これにより、元のドキュメントとほぼ同じ意味を持つ解析ツリーが生成されます。これは通常、必要なデータを収集して逃げるのに十分です。
  2. Beautiful Soup は、解析ツリーをナビゲート、検索、および変更するためのいくつかの単純なメソッドと Python のイディオムを提供します。これは、ドキュメントを分析し、必要なものを抽出するためのツールキットです。アプリケーションごとにカスタム パーサーを作成する必要はありません。
  3. Beautiful Soup は、受信ドキュメントを Unicode に、送信ドキュメントを UTF-8 に自動的に変換します。ドキュメントでエンコーディングが指定されておらず、Beautiful Soup がエンコーディングを自動検出できない場合を除き、エンコーディングについて考える必要はありません。次に、元のエンコーディングを指定するだけです。

Beautiful Soup は、与えられたものをすべて解析し、ツリー トラバーサルを行います。「すべてのリンクを検索する」、「externalLink クラスのすべてのリンクを検索する」、「URL が「foo.com」に一致するすべてのリンクを検索する、または「太字のテキストを含む表の見出しを検索してから、私にそのテキストを。」

于 2008-12-30T10:57:54.883 に答える
3

HTML は XML のように見えますが、XML ではないことに注意してください。XHTML は HTML の XML 形式です。

于 2008-12-30T16:05:16.170 に答える
0

たとえば、Python で HTML を解析する方法に関する提案については、 extracting-text-from-html-file-using-pythonを参照してください。

于 2008-12-30T10:58:44.057 に答える