如何使用Scrapy Shell提取网页中的SKU数值?
提取SKU数值的几种实用方法
你拿到的包含SKU的HTML结构大概率是类似 <span class="stat-1">SKU: 8644</span> 这类格式,要提取其中的数字,试试下面几种直接可行的方法:
方法1:CSS选择器取文本 + 字符串拆分
先提取span内的纯文本,再通过字符串操作分离出数值:
# 提取span内的文本内容 sku_raw = response.css('div.caption span.stat-1::text').get() # 拆分并提取SKU数值(适配"SKU: XXXX"这类格式) sku = sku_raw.split(':')[-1].strip() if sku_raw else None
方法2:正则表达式匹配数字
如果SKU是纯数字格式,用正则直接提取更稳妥,不受前缀文本变化影响:
import re sku_raw = response.css('div.caption span.stat-1::text').get() sku = re.search(r'\d+', sku_raw).group() if sku_raw else None
方法3:XPath提取文本并处理
也可以用XPath定位文本节点,再做同样的字符串处理:
sku_raw = response.xpath('//div[@class="caption"]/span[@class="stat-1"]/text()').get() sku = sku_raw.split(':')[-1].strip() if sku_raw else None
如果页面存在多个SKU条目,把get()替换成getall(),再遍历列表处理每一项即可。
内容的提问来源于stack exchange,提问作者Digit Gig
相关产品推荐
相关产品推荐

