如何在python的scrapy选择器中仅提取文本

我有这个代码

   site = hxs.select("//h1[@class='state']")

log.msg(str(site[0].extract()),level=log.ERROR)

输出是

 [scrapy] ERROR: <h1 class="state"><span>

1</span>

<span> job containing <span>php</span> in <span>region</span> paying <span>$30-40k per year</span></span>

</h1>

是否可以只获取没有任何html标记的文本

回答:

//h1[@class='state']

在上面的xpath中,你正在选择h1具有class属性的标签state

所以这就是为什么它选择所有进入的东西 h1 element

如果你只想选择h1标签文本,则只需

//h1[@class='state']/text()

如果要选择h1标签的文本及其子标签,则必须使用

//h1[@class='state']//text()

因此区别在于/text()特定标签的文本,特定标签的文本//text()及其子标签

下面提到的代码为你工作

site = ''.join(hxs.select("//h1[@class='state']/text()").extract()).strip()

以上是 如何在python的scrapy选择器中仅提取文本 的全部内容, 来源链接: utcz.com/qa/415728.html

回到顶部