小编典典

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

scrapy

我有这个代码

   site = hxs.select("//h1[@class='state']")
   log.msg(str(site[0].extract()),level=log.ERROR)

输出是

 [scrapy] ERROR: <h1 class="state"><strong>
            1</strong>
            <span> job containing <strong>php</strong> in <strong>region</strong> paying  <strong>$30-40k per year</strong></span>
                </h1>

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


阅读 574

收藏
2020-04-09

共1个答案

小编典典

//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()
2020-04-09