Scrapy XPath提取价格与EAN码遇阻,求正确语法
搞定Scrapy中商品价格与EAN码的XPath提取问题
嘿,先看你之前写的XPath //div[@class="emProductPrice"/span/span/text()],这里有个明显的语法错误——[@class="emProductPrice"] 后面少了闭合的方括号,这直接导致路径解析失败啦。另外就算修正这个问题,也可能拿到多余内容,下面给你针对价格和EAN码的精准写法:
提取商品价格
根据你的需求,有两种实用的提取方式:
提取页面显示的格式化价格(比如
500,02)://div[@class="emProductPrice"]/span/span[@itemprop="price"]/text()这个路径精准定位到带
itemprop="price"的span标签,直接拿它的文本内容,就是页面上显示的带逗号的价格。提取
content属性里的标准化价格(比如500.02)://div[@class="emProductPrice"]/span/span[@itemprop="price"]/@content如果后续要做数值计算,这个点分隔的价格格式会更方便处理。
提取EAN码(GTIN14)
EAN码藏在meta标签的content属性里,对应的itemprop是gtin14,所以XPath这么写:
//div[@class="emProductPrice"]/span/meta[@itemprop="gtin14"]/@content
直接定位到目标meta标签,提取它的content值,就是你要的08043687312822。
小技巧
你可以先在浏览器开发者工具里(F12打开Elements面板,按Ctrl+F输入XPath)测试这些路径,确认能选中目标元素后再放到Scrapy里,这样能快速排查问题哦~
内容的提问来源于stack exchange,提问作者pali112
相关产品推荐
相关产品推荐

