这是我的xpath:
img = hxs.xpath("//div[@class='gallery-images']/a//figure[@class = 'gallery-images-item']/img/@src").get()
这是我从中检查此内容的页面的链接: https://www.michaelkors.com/allie-mixed-media-trainer/_/R-US_43T9ALFS3L
我尝试了每种组合,但仍未返回
。答案 0 :(得分:0)
该网站将所有产品详细信息存储在JSON结构中(请参见源中的window.__INITIAL_STATE__
),这就是为什么您无法在HTML代码中找到它的原因。此外,每个可用的SKU都有单独的图像(通常都是相同的),在我的解决方案中,我使用的是第一个SKU:
import scrapy
import json
class MichaelKorsSpider(scrapy.Spider):
name = 'MichaelKors'
start_urls = ['https://www.michaelkors.com/allie-mixed-media-trainer/_/R-US_43T9ALFS3L']
def parse(self, response):
initial_state = response.xpath('//script[contains(., "window.__INITIAL_STATE__ = ")]/text()').re_first(r'window.__INITIAL_STATE__ =\s*(\{.+?\});')
data = json.loads(initial_state)
images = []
for image_url in data["pdp"]["rawJson"]["SKUs"][0]["media"]["images"]:
images.append("https://michaelkors.scene7.com/is/image/" + image_url)
print(images)