我目前正试图用scrapy刮取网站https://www.bloomingdales.com。
在这个项目中,我试图提取每个产品页面中加载的主图像的网址,例如:
然而,每张图片都在网站上加载了图片请求,因此我无法通过xpath来定位图片网址。如何使用scrapy提取图像网址?
以下是我在Chrome开发者工具中看到的请求的屏幕截图:
答案 0 :(得分:4)
电子商务网站在html正文中存储一些json数据然后让用户的浏览器将其解压缩到一个完整页面是很常见的。
对于此特定页面,如果您复制图片网址并在页面源中搜索,则可以看到存储在以下位置的所有产品数据:
<script id="pdp_data" type="application/json">some_json</script>
您可以使用scrapy获取此数据并将json解码为python词典:
data = response.xpath("//script[@id='pdp_data']/text()").extract_first()
import json
data = json.loads(data)
# then you can parse the data
data['product']['imageSource']
# '8/optimized/9216988_fpx.tif'