Найти - Пользователи
Полная версия: lxml (xpath) всегда возвращает пустой список(
Начало » Python для новичков » lxml (xpath) всегда возвращает пустой список(
1 2
kristus
ПОмогите решить проблему, перепробовал все!ничего не помагает.пытаюсь парсить lxml xpath -постянно пустой список(
один из вариантов кода:

page = urllib.urlopen("http://www.google.ru/").read()
lt = lxml.html.fromstring(page)
text = lt.xpath("html/body//p[*]")
print len(text)

проверяю через firebug - все парсится отлично!
что делать ,уже ума не приложу(
kristus
если в строке xpath убрать html - body//p , то выдает обьект в непонятном виде:
text=
<Element p at 0xb6bece0c>
преобразование вида print (“text={0}”.format(text).encode('utf-8')) ничего не меняет
odnochlen
Раньше гугл вроде бы давал отлуп юзерагенту urllib?

>>> root4.xpath("/html/body//p[*]")
[<Element p at 0x157e840>]
А что такое “html/body”? Разве xpath не должен начинаться с / ?

kristus
выдает обьект в непонятном виде:
Кури маны по ElementTree / lxml. lxml превращает документ в дерево.

Если тебе нужен текст внутри тега, то он достается так: elem.text
А если после тега (br, например), то так: elem.tail.
kristus
спасибо, буду курить! html/body - firebug гененирует без первого /
kristus
РАзобрался почему список был нулевым! xpath не парсит <tbody>(( а через fire bug все ок!
odnochlen
У тебя в примере tbody же не было.
PooH
То что вы видите в firebag не совпадает с получаемым документом. Броузеры делают исправления в DOM(добавляют узлы tbody) и т.д. Хотите видеть то же, что и lxml смотрите “Исходный код страницы”
odnochlen
Да, но разве firebug дает xpath для исходного кода страницы?
PooH
odnochlen
Да, но разве firebug дает xpath для исходного кода страницы?
Я, видимо, нехорошо сформулировал. Дерево документа, построенное броузером и построенное lxml могут отличаться, поэтому не стоит полагаться на пути из firebug
odnochlen
А xpath разве не стандаритизирован? Какой в нем смысл, если в разных библиотеках результаты применения будут разными?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB