我有这个HTML
<p>
<strong>aquiline</strong>
<i> adj. </i>
of or like the eagle.
</p>
所有这些,这个节点都被div
和class= field-item even
包裹
我想背诵Aquiline adj. of or like the eagle...
。现在我有了这个不正确的xpathresponse.xpath('//div[@class="field-item even"]//descendant-or-self::p/text()').getall()
您的xpath几乎是正确的。将p
替换为*
以选择所有文本节点,而不仅仅是段落标记的文本节点。同样使用normalize-space
函数,您可以将所有文本作为一个字符串而不是列表。请参阅下面的代码片段。
response.xpath('normalize-space(//div[@class="field-item even"]//descendant-or-self::*)').get()