我有这个代码
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标记的文本
//h1[@class='state']
在上面的xpath中,你正在选择h1具有class属性的标签state
h1
class
state
所以这就是为什么它选择所有进入的东西 h1 element
h1 element
如果你只想选择h1标签文本,则只需
//h1[@class='state']/text()
如果要选择h1标签的文本及其子标签,则必须使用
//h1[@class='state']//text()
因此区别在于/text()特定标签的文本,特定标签的文本//text()及其子标签
/text()
//text()
下面提到的代码为你工作
site = ''.join(hxs.select("//h1[@class='state']/text()").extract()).strip()