15

解析されたHTMLドキュメントのDOMツリーを参照する必要があります。

lxmlで文字列を解析する前にuTidyLibを使用しています

a = tidy.parseString(html_code、options)dom = etree.fromstring(str(a))

エラーが発生することがありますが、tidylibは不正な形式のhtmlを修復できないようです。

エラーが発生せずにすべてのHTMLファイルを解析するにはどうすればよいですか(修復できないファイルの一部のみを解析します)?

4

2 に答える 2

25

Beautiful Soupは、無効な/壊れたHTMLでうまく機能します

>>> from BeautifulSoup import BeautifulSoup
>>> soup = BeautifulSoup("<htm@)($*><body><table <tr><td>hi</tr></td></body><html")
>>> print soup.prettify()
<htm>
 <body>
  <table>
   <tr>
    <td>
     hi
    </td>
   </tr>
  </table>
 </body>
</htm>
于 2009-05-24T21:06:13.437 に答える
13

すでにlxmlを使用しているので、lxmlの ElementSoupモジュールを試しましたか?

ElementSoupがHTMLを修復できない場合は、データがどのように壊れているかについての独自の観察に基づいた独自のフィルターを最初に適用する必要があります。

于 2009-05-24T22:52:08.717 に答える