【发布时间】:2016-04-30 08:23:24
【问题描述】:
我是一个 python/scrapy 新手。我正在尝试抓取一个网站进行练习,基本上当 data-src 存在时,我想使用 img::attr(data-src), 中的值/p>
def parse(self, response):
for item in items:
listing['img'] = item.css('div img::attr(data-src)').extract()
否则如果 data-src 不存在则使用 img::attr(src)
listing['img'] = item.css('div img::attr(src)').extract()
但问题是如何在 if 语句中做到这一点?
listing['img'] = if item.css('div img::attr(data-src)'): item.css('div img::attr(data-src)').extract() else: item.css('div img::attr(src)').extract()
当然这样不行,而且有错误:
SyntaxError: invalid syntax
感谢您的帮助和意见!
【问题讨论】:
-
@BoltClock♦ 你是对的,它确实应该是使用多个 css 选择器的最佳方式。
标签: python python-2.7 scrapy