使用scrapy spider及其拉错输出的价格。
HTML:
<span style="" class="b-product_price-standard b-product_price-standard--line_through">$350</span>
Xpath:
['price'] = sel.xpath('normalize-space(div/main/div[4]/div[3]/div/div[1]/h1[2]/div/span[1]/text())').extract()
结果:
'price': [u'\u20ac300]
似乎是价格中的“$”导致问题。我一直在挖掘,我似乎无法找到一个我认为是一个常见问题的答案,这让我觉得它可能更多,我错过了。
非常感谢任何帮助!
答案 0 :(得分:0)
使用重新代替提取:
['price'] = sel.xpath('.../span[1]/text())').re('\d+')
答案 1 :(得分:0)
Casimir et Hippolyte是对的,检索到正确的结果,但它在Python中的表示看起来不同。但除此之外,你的XPath表达式并不理想。
尽量不依赖冗长的位置XPath表达式,当HTML文档发生微小变化时,它们很容易破解。
相反,尝试按属性查找元素。也许这种类属性的组合是独一无二的?例如
//span[@class = 'b-product_price-standard b-product_price-standard--line_through']
可行。如果没有,则必须显示更多正在选择的HTML文档。