Xpath не совпадает - PullRequest
       32

Xpath не совпадает

1 голос
/ 20 августа 2011

Я пытаюсь получить некоторые элементы со страницы. К сожалению, это приводит к пустому списку. Красивое печатное дерево включает в себя этот элемент:

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

Однако, когда я делаю это на том же дереве:

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

Я получаю пустой список. Дерево было создано с помощью html5lib / lxml treebuilder.

1 Ответ

2 голосов
/ 20 августа 2011

Кажется, что вы имеете дело с XHTML, поэтому вы можете зарегистрировать пространство имен html до вычисления выражения XPath:

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

См. Также Пространства имен и префиксы :

Если ваше выражение XPath использует префиксы пространства имен, вы должны определить их в отображении префикса. Для этого передайте словарь в аргумент ключевого слова пространства имен, который преобразует префиксы пространства имен, используемые в выражении XPath, в URI пространства имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...