重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Python2.6とlxml.htmlにて、
例えばh2タグ内を全て取得したいのですが、上手くいきません。

<h2>タグが3つあるとして、
自分は、//h:h2や、//*[name()='h2']などと指定し、text()を行いましたが上手くいきませんでした。
最初の方は、未定義の名前空間プレフィックス、2つめは最初のh2タグの内容しか取れませんでした。

色々試したのですが、ちょっと方法が思い付きません。
アドバイスいただけないでしょうか?
宜しくお願い致します。

カテゴリをXMLとその他のプログラミングで迷いました。
もしこちらではないようでしたら移動いたします。

A 回答 (1件)

よくわからんけど、こういうこと?



import lxml.html
root = lxml.html.fromstring(r'''<html>
<body>
<h2>hello world</h2>
<h2>foo <em>bar</em> baz</h2>
</body>
</html>''')
res = root.xpath('//h2')
print res[1].text # foo
print res[1].text_content() # foo bar baz
print res[1][0].text # bar
print res[1][0].tail # baz

名前空間うんぬんの件はよく意味がわからない。
HTMLを処理しようとしてるんじゃないの?

参考URL:http://lxml.de/lxmlhtml.html#parsing-html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!