Я работаю с этим довольно долго и пробовал все виды решений пространства имен. Однако мой текущий скрипт не печатает требуемые строки, а весь html-дамп. Кто-нибудь знает, как обойти эту проблему?etree & xpath возвращает весь html вместо текста
from lxml.html import parse
from lxml import etree
import requests
r = requests.get('https://berlin.kauperts.de/Strassen/Aachener-Strasse-10713-Berlin.html')
tree = etree.parse(r.text)
NSMAP = {'mw':'http://www.w3.org/1999/xhtml/'}
Name2 = tree.xpath('//{http://www.w3.org/1999/xhtml}html/body/div[7]/div/div/div/table/tbody/tr/td[2]/a')
Name3 = tree.find("//html/body/div[7]/div/div/div/table/tbody/tr/td[2]/a")
print(Name2, Name3)
Большое спасибо за вашу помощь и в самом деле более простые выражения. Однако с этим кодом я получаю следующую ошибку: «Файл« test.py », строка 11, в tree = etree.parse (r.text)' ... 'IOError: ' Я действительно не нахожу подобных ошибок в stackoverflow. –
fahrradlaus
Не знаю. Для меня это ошибки в 'tree = etree.parse (r.text)', которая является строкой, которую я даже не коснулся. Мои изменения находятся только в двух последних строках, поэтому вы должны увидеть ту же ошибку в своем собственном коде. – Tomalak
Прежде чем он выкинул бы весь html-файл, потому что у меня были следующие строки в коде выше: import sys reload (sys) sys.setdefaultencoding ('iso-8859-1') 'странно ... что может быть неправильно с этой линией? Я подумал, что имеет смысл преобразовать html в строку, чтобы проанализировать его после ... Если я положу 'tree = etree.parse (r)' I get' TypeError: не могу разобрать «Response» – fahrradlaus