正确使用scrapy下载图像的方式

我正在从该站点下载图像。但是问题是产品具有三个图像,一个图像用于此站点,其他图像用于产品特定页面。我可以从该站点下载图像,但是我也想下载其余图像,但是它们的URL在产品特定页面上给出。.它们是我一次可以下载所有图像的任何方式,这意味着我想要一口气收集与产品相关的数据...


喜欢以解析方法请求读取产品页面并同时提取图像URL。下面是我的代码解析方法。


class ESpider(BaseSpider):

    name = "eSpider"

    allowed_domains = ["1click1call.com"]

    start_urls = "http://1click1call.com/Jeans-Shirts-Tshirts-Trousers"


    def parse(self, response):                      

        hxs = HtmlXPathSelector(response)        

        sites = hxs.select('//div[@class="bord"]')

        items = []

        for site in sites:

            item = EscraperItem()

            item['productSite'] = "http://1click1call.com/"

            item['productPrice'] = site.select('div[@class="price"]').extract()            

            item['productURL'] = site.select('div[@class="image"]/a/@href').extract()

            item['productTitle'] = site.select('div[@class="name"]/a/text()').extract()

            item['productImage'] = site.select('div[@class="image"]/a/img/@src').extract()

            item['productDesc'] = site.select('div[@class="description"]/text()').extract()

            item['image_urls'] = item['productImage']

            items.append(item)


        return items

例如,在此产品页面上, 他们有四个图像,我想同时提取所有这些图像,而我正在爬网此产品目录


要提取我正在使用的特定产品图片,请使用以下这些:


hxs.select('//div[@class="left"]//div[@class="image"]/a/@href').extract()

hxs.select('//div[@class="left"]//div[@class="image"]/a/img/@src').extract()

hxs.select('//div[@class="left"]//div[@class="image-additional"]/a/img/@src').extract()

hxs.select('//div[@class="left"]//div[@class="image-additional"]/a/@href').extract()

所以我想从目录页面下载图像时也要下载这些图像..像上面我在解析方法中一样...有没有做的任何方法...容易...一种方法是阅读产品网址形成JSON文件...然后将其提取...是他们执行此操作的其他任何方式....


小唯快跑啊
浏览 166回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python