4

このサイトから画像をダウンロードしています。しかし、問題は製品に 3 つの画像があり、1 つはこのサイトで使用され、残りは製品固有のページで使用されていることです。このサイトから画像をダウンロードできますが、残りの画像もダウンロードしたいのですが、それらの 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

たとえば、この製品ページ には 4 つの画像があり、これらすべての画像を同時に抽出したいのですが、この製品カタログをクロールしています

私が使用している特定の製品画像を抽出するには、これらを使用します:

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()

だから私はカタログページから画像をダウンロードしているときにこれらの画像もダウンロードしたい..上記のようにパースメソッドでやっている...それを行う方法はありますか...簡単に...1つの方法は読むことですJSONファイルからの製品URL...そしてそれらを抽出する...それを行う他の方法です....

4

1 に答える 1