我有这个代码
site = hxs.select("//h1[@class='state']")
log.msg(str(site[0].extract()),level=log.ERROR)
Run Code Online (Sandbox Code Playgroud)
输出是
[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>
Run Code Online (Sandbox Code Playgroud)
是否可以只获取没有任何html标签的文本
akh*_*hab 51
//h1[@class='state']
Run Code Online (Sandbox Code Playgroud)
在上面的xpath中,您选择的h1是具有class属性的标记state
所以这就是它选择所有内容的原因 h1 element
如果您只想选择h1标签文本,您只需要做
//h1[@class='state']/text()
Run Code Online (Sandbox Code Playgroud)
如果要选择h1标记文本及其子标记,则必须使用
//h1[@class='state']//text()
Run Code Online (Sandbox Code Playgroud)
所以不同之处在于/text()特定标签文本以及特定标签的文本//text()及其子标签
下面提到的代码适合你
site = ''.join(hxs.select("//h1[@class='state']/text()").extract()).strip()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23743 次 |
| 最近记录: |