@ilyakmet

Как работать с xpath в lxml Python?

Почему не работает код:

from lxml import html
import requests

page = requests.get('http://myip.ru')
tree = html.fromstring(page.content)

print tree.xpath('/html/body/div/div[1]/table/tbody/tr[2]/td')


Выдает пустой лист [].
  • Вопрос задан
  • 15839 просмотров
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
non progredi est regredi
вот такое, с номерами
div[1] tr[2]
плохая практика, нужно уметь без них
это во вторых

а во первых, где ты в коде view-source:myip.ru DOM дерево нашел?
там же сплошной JS
Ответ написан
@sergnosov1
Вывод будет пустая строка т.к. содержимое подгружается спомощью jquery
import lxml.html as lh

page = lh.parse('http://myip.ru')
my_div = page.xpath(".//title")[0].text_content().encode('utf-8')
print my_div
# Ваш IP-адрес. Узнать IP адрес, определить IP-адрес, определить свой IP
div_name = 'ipcontent'
my_div = page.xpath(".//div[@id=%s]" %div_name)
print my_div
# []

чтобы получить результат работы jquery нужно использовать Selenium
Ответ написан
@Grigoriy457
Можно использовать подгружаемую страничку index_small.php: https://myip.ru/index_small.php. А дальше её распарсить
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы