我正在从这个站点下载图像。但问题是产品有三张图片,一张用于本网站,另一张用于产品特定页面。我可以从该站点下载图像,但我也想下载其余图像,但它们的 URL 在产品特定页面上给出..它们是我可以一次下载所有图像的任何方式,意味着我想要一次性收集产品相关数据...
喜欢在 parse 方法中发出请求来读取产品页面并同时提取图像 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()
因此,当我从目录页面下载图像时,我也想下载这些图像..就像上面我在解析方法中所做的那样……有没有办法做到这一点……很容易……一种方法是阅读产品 URL 形成 JSON 文件......然后提取它们......是他们的任何其他方式......