Scrapy CSS Selector忽略标签并仅获取文本 [英] Scrapy CSS Selector ignore tags and get text only

查看:463
本文介绍了Scrapy CSS Selector忽略标签并仅获取文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下HTML:

<li class="last">
    <span>SKU:</span> 483151
</li>

我可以使用:

SKU_SELECTOR = '.aaa .bbb .last ::text'
sku = response.css(SKU_SELECTOR).extract_first().strip()

如何只获取数字而忽略跨度.

How can I get the number only and ignore the span.

推荐答案

您的CSS选择器在::text之前有不必要的空间.

Your css selector has unnecessary space before ::text.

SKU_SELECTOR = '.aaa .bbb .last ::text'
                               ^

空格表示您只想选择self下方的文本的任何后代或self节点都符合该选择器的条件.

Space indicates that any decendant-or-self node qualifies for this selector where you want to select only text under self.

我可以使用它

>[0]: s = Selector(tex='...')
>[1]: s.css('.last::text').extract()
<[1]: [u'\n    ', u' 483151\n']

这篇关于Scrapy CSS Selector忽略标签并仅获取文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆