获取标签的文本和子标签的文本

Get text of a tag and the text of child tags

我有这个HTML

<p>
        <strong>aquiline</strong>
        <i> adj. </i>
        of or like the eagle.
</p>

所有这个节点都被 divclass= field-item even

包裹起来

我想接收 Aquiline adj. of or like the eagle...。现在我有这个不正确的 xpath response.xpath('//div[@class="field-item even"]//descendant-or-self::p/text()').getall()

你的 xpath 几乎是正确的。将 p 替换为 * 到 select 所有文本节点,而不仅仅是段落标记的文本节点。同样使用 normalize-space 函数,您可以将所有文本作为一个字符串而不是列表获取。请参阅下面的代码片段。

response.xpath('normalize-space(//div[@class="field-item even"]//descendant-or-self::*)').get()