以下是一些示例HTML
<div class="something">
<p> This is a <b> Paragraph </b> with <a href="/something"> mixed </a> elements
<p> Next paragraph....
</div>
我试过的是
//div[contains('@class','something')/text()
和
//div[contains('@class','something')/*/text()
和
//div[contains('@class','something')/p/text()
所有这些似乎都跳过'b'标签和'a'标签。
答案 0 :(得分:3)
尝试" ".join(sel.xpath("//div[contains(@class,'something')]//text()").extract())
sel
选择器,response
。
答案 1 :(得分:2)
使用XPath表达式
//div[contains(@class,'something')]//text()
获取所选text()
元素中所有div
个节点的文本的串联。
<强>输出:强>
This is a Paragraph with mixed elements
Next paragraph....
答案 2 :(得分:1)
这取决于您想要获得的内容和方式。无论如何,你尝试过的东西有几个问题:
]
之后缺少右括号(contains
)。@class
中使用时,contains
不应包含在(单个)引号中。如果您想将div
元素的所有文本作为一个字符串,则可以使用
normalize-space(//div[contains(@class,'something')])