这是我的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
我已经尝试了所有组合,但它仍然返回 None。
该网站将所有产品详细信息存储在 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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句