web-dev-qa-db-ja.com

PythonでのHTMLの解析

BeautifulSoupまたはlxmlを使用できない場合、HTMLを解析するための最善策は何ですか? SGMLlibを使用するコードをいくつか持っていますが、それは少し低レベルであり、現在は非推奨です。

ほとんどの入力はかなりクリーンであると確信していますが、少し不正な形式のHTMLに腹を立てることができると思います。

27
Andy Baker

Pythonには ネイティブHTMLパーサー がありますが、Nickが提案したTidyラッパーもおそらく確かな選択になるでしょう。 Tidyは非常に一般的なライブラリです(Cで書かれていますか?)

10

Lxmlと他の多くのpythonモジュールをMac(OS X)にPalletを使用して簡単かつシームレスにインストールできます MacPorts公式GUI

モジュール名はpy27-lxmlです。 1、2、3のように簡単です。

2
Gussisaurio

おそらく µTidylib はあなたのニーズを満たしますか?

2
Nick Presta

html5libは良いです:
http://code.google.com/p/html5lib/

更新:上記のリンクが壊れています。上記のサードパーティのミラーは、 https://github.com/html5lib/gcode-import からアクセスできます

1
rudyryk

htqlは不正なHTMLの処理に優れています。

http://htql.net/

1
seagulf

http://www.xmlhack.com/read.php?item=1392http://sourceforge.net/projects/pirxx/

http://pyxml.sourceforge.net/topics/

私はpythonの経験があまりありませんが、過去に(Apache財団の)Xercesを使用していて、非常に便利であることがわかりました。 pythonの観点からではありませんが、学習曲線も悪くありません。ただし、それを検討することをお勧めします。(最初に含めた2つのリンクは、pythonはXercesへのインターフェースであり、最後のものは「python xml」での最初のgoogleヒットです)。

1
Joe Bane