- ベストアンサー
xPathで全てのhタグを取得したいのですが
Python2.6とlxml.htmlにて、 例えばh2タグ内を全て取得したいのですが、上手くいきません。 <h2>タグが3つあるとして、 自分は、//h:h2や、//*[name()='h2']などと指定し、text()を行いましたが上手くいきませんでした。 最初の方は、未定義の名前空間プレフィックス、2つめは最初のh2タグの内容しか取れませんでした。 色々試したのですが、ちょっと方法が思い付きません。 アドバイスいただけないでしょうか? 宜しくお願い致します。 カテゴリをXMLとその他のプログラミングで迷いました。 もしこちらではないようでしたら移動いたします。
- みんなの回答 (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を処理しようとしてるんじゃないの?