このサイトから画像をダウンロードしています。しかし、問題は製品に 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...そしてそれらを抽出する...それを行う他の方法です....