Форум сайта python.su
0
g.go('http://drlz.kiev.ua/ibp/ddsite.nsf/all/shlz1?opendocument&stype=7A203E58C7891C5EC22578B900347BA7') lzdata = g.xpath_list('//tr[@valign="top"]/td[@bgcolor="F8F8F8"]/text()')
(//tr[@valign="top"]/td[@bgcolor="F8F8F8"])
Отредактировано agryn (Июнь 27, 2012 13:16:46)
Офлайн
173
<br> вообще гадский тэг.
Есть вариант сделать запрос на узлы (без text()), а потом уже эти узлы превращать в текст:
lzdata = g.xpath_list('//tr[@valign="top"]/td[@bgcolor="F8F8F8"]') for i, td in enumerate(lzdata): lzdata[i] = td.text_content()
Отредактировано reclosedev (Июнь 27, 2012 17:48:06)
Офлайн
А в чём проблема?
print ‘ ’.join(elem.xpath('…./text()'))
Или так:
elem = g.xpath('…./td')
for subnode in elem.xpath('br'):
subnode.getparent().remove(subnode)
print elem.text
Офлайн
173
lorienПо-моему, у ТС в lzdata должно быть количество элементов равное количеству строк в таблице, чтобы можно было установить соответствие.
А в чём проблема?
Офлайн
0
Хорошо, тогда подскажите как с полученного узла не удалить тег <br>, а заменить скажем на “; ”?
Офлайн
0
lorienДо чего это? Я понятно сформулировал проблему, этот кусок кода выводит текст первого найденного элемента с пробелом между буквами.
print ‘ ’.join(elem.xpath('…./text()'))
lorienЯ так понял эта конструкция должна была удалять тег <br>, но этот кусок кода не работает вообще.
elem = g.xpath('/…/td')
for subnode in elem.xpath('br'):
subnode.getparent().remove(subnode)
print elem.text
Отредактировано agryn (Июнь 28, 2012 16:46:55)
Офлайн
> До чего это? Я понятно сформулировал проблему, этот кусок кода выводит текст первого найденного элемента с пробелом между буквами.
Опечатался, там надо xpath_list использовать, а не xpath.
> Я так понял эта конструкция должна была удалять тег <br>, но этот кусок кода не работает вообще.
Ну так поправьте, чтоб заработала. Что значит не работает вообще? Вы предлагаете нам телепатически определить как именно она “не работает вообще”?
Офлайн