【发布时间】:2018-07-01 13:57:13
【问题描述】:
我正在使用 scrapy 构建一个蜘蛛来监控网站上的价格。该网站的价格显示方式不一致。对于它的标准价格,它总是使用相同的 CSS 类,但是当产品进行促销时,它使用两个 CSS 类之一。两者的 CSS 选择器如下:
response.css('span.price-num:last-child::text').extract_first()
response.css('.product-highlight-label')
以下是我的项目目前在我的蜘蛛中的外观:
item = ScraperItem()
item['model'] = extract_with_css('.product-id::text')
item['link'] = extract_with_css('head meta[property="og:url"]::attr(content)')
item['price'] = extract_with_css('span.list-price:last-child::text')
item['promo_price'] = extract_with_css('span.price-num:last-child::text')
yield item`
我想要类似的东西:
如果response.css('span.price-num:last-child::text') 为真
item['promo_price'] = extract_with_css('span.price-num:last-child::text')
否则item['promo_price'] = extract_with_css('.product-highlight-label')
我尝试过的所有方法都失败了。
【问题讨论】:
标签: python css if-statement web-scraping scrapy