我想提取一个图像 url 列表,并使用 scrapy item loaders 以列表格式存储它
我可以使用提取方法获取列表格式的图像 url,但它只存储一张图像。
代码: def parseVictimData(自我,回应): victimItem = ItemLoader(项目=CaimItem(),选择器=响应) victimItem.add_value('listing_url', response.meta['listing_url']) 图片 = response.xpath('//figure[contains(@data-fancybox,"gallery")]/@href').extract() victimItem.add_value('victim_image_url', 图片) victimItem.add_xpath('listing_title', '//[@id="weldioo"]/section[1]/div[2]/div/div/div/h1')
期望的输出:
'image_urls': ['image1.jpg', 'image2.jpg', 'image3.jpg']
使用 MapConpose 试试这个
from scrapy.loader import ItemLoader
from scrapy.loader.processors import MapCompose
class MySpider(scrapy.Spider):
name = "my_spider"
def parseVictimData(self, response):
victimItem = ItemLoader(item=CaimItem(), selector=response)
victimItem.add_value('listing_url', response.meta['listing_url'])
victimItem.add_xpath('listing_title', '//[@id="weldioo"]/section[1]/div[2]/div/div/div/h1')
Images = response.xpath('//figure[contains(@data-fancybox,"gallery")]/@href')
victimItem.add_xpath('victim_image_url', '//figure[contains(@data-fancybox,"gallery")]/@href', MapCompose(str.strip))
yield victimItem.load_item()