私はいくつかのhtmlを解析しようとしていますが、私はこの小さなhtmlコードでいくつか問題があります。htmlをlxml(タグh3)で解析する
XML:
<div>
<p><span><a href="../url"></a></span></p>
<h3 class="header"><a href="../url">Other</a></h3>
<a href="../url">Other</a><br>
<a class="aaaaa" href="../url">Indice</a>
<p></p>
</div>
コード:
import urllib
from lxml import etree
import StringIO
resultado=urllib.urlopen('trozo.html')
html = resultado.read()
parser= etree.HTMLParser()
tree=etree.parse(StringIO.StringIO(html),parser)
xpath='/div/h3'
html_filtrado=tree.xpath(xpath)
print html_filtrado
私はそれは[]が表示されたコードを印刷し、私はそれはそれで<h3 class="header"><a href="../url">Other</a></h3>
持つリストでなければならないこととし。 もし私がそのリストを持っていたら、etree.tostring(html_filtrado)を実行して<h3 class="header"><a href="../url">Other</a></h3>
を見てください。
このコードはどのように取得できますか?
<h3 class="header"><a href="../url">Other</a></h3>
../url
?それは私が欲しい部分です!
はあなたに
をあなたが投稿 '閉じタグなし
が' 'lxml'を有効にするために、まず、ライブラリを解析する最もXMLのためである、違法XMLで、** XMLに準拠しないもの破損したHTMLでは、パーサーにいくつかのフラグを設定する必要があります。代わりにHTMLパーサを使用するか、HTMLをXHTMLに変換してみてください。 –
しかし、私は問題なしで多くのページを解析しています。
!!だから、私はどのフラグを使用する必要がありますか?私はこのパーサーが本当に好きなので、本当に速いです! – dani