Это образец HTML
:
<div class="wpb_text_column">
<div class="wpb_wrapper">
<p style="text-align: center;"><a href="http://somepage1.com">First text part </a></p>
<p style="text-align: center;"><a href="http://somepage2.com">Second text part </a></p>
<p style="text-align: center;"><a href="http://somepage3.com">Third text part</a></p>
</div>
</div>
<div class="wpb_text_column">
<div class="wpb_wrapper">
<p style="text-align: center;"><a href="http://somepage4.com">First text part </a></p>
<p style="text-align: center;"><a href="http://somepage5.com">Second text part</a></p>
</div>
</div>
С кодом ниже
tree = html.fromstring(html_sample)
tree.xpath('//div[@class="wpb_text_column"]/div[@class="wpb_wrapper"]/p/a/text()')
Я могу получить список текстовых значений
['First text part ', 'Second text part ', 'Third text part', 'First text part ', 'Second text part']
Однако я хочу получить все значения из каждого div
в виде одной строки, например
['First text part Second text part Third text part', 'First text part Second text part']
и
//div[@class="wpb_text_column"]/div[@class="wpb_wrapper"]/normalize-space()
кажутся exact XPath
для решения проблемы, но lxml
не поддерживает синтаксис /normalize-space()
:
lxml.etree.XPathEvalError: Недопустимое выражение
Итак, как получить желаемый результат в lxml
?
tree = html.fromstring(html_sample, parser=etree.XMLParser(remove_blank_text=True))
дает ошибкуlxml.etree.XMLSyntaxError: Extra content at the end of the document
- person Andersson   schedule 08.05.2017