1

ページからいくつかの要素を取得しようとしています。残念ながら、リストは空になります。きれいに印刷されたツリーには、次の要素が含まれています。

<html:a title="..." href="..." id="..." class="topic_title">...</html:a>

ただし、同じツリーでこれを行うと、次のようになります。

page.xpath('''.//a[@class="topic_title"]''')

空のリストが表示されます。ツリーはhtml5lib/lxmltreebuilderで作成されました。

4

1 に答える 1

2

XHTMLを扱っているように見えるのでhtml、XPath式を評価する前に名前空間を登録できます。

page.xpath('''.//html:a[@class="topic_title"]''',
           namespaces={'html': 'http://www.w3.org/1999/xhtml'})

名前空間とプレフィックスも参照してください。

XPath式で名前空間プレフィックスを使用する場合は、プレフィックスマッピングでそれらを定義する必要があります。このために、XPath式で使用される名前空間プレフィックスを名前空間URIにマップする名前空間キーワード引数に辞書を渡します。

于 2011-08-20T13:19:15.270 に答える