我开始使用 Scrapy,一个用于 Python 的爬虫库。经过大量搜索,我仍然没有找到一种在 CSS 样式表中抓取背景图像的方法。例如,假设我需要来自 store 的商店图片的 url .通过检查,我意识到我需要的图像 URL 在这里(在 CSS 样式表中):
@media only screen and (max-width: 1068px)
.store-page .image-store-hero {
background-image: url("http://images.apple.com/retail/alamoana/images/alamoana_hero_medium.jpg");
}
如何使用 xpath 抓取“http://images.apple.com/retail/alamoana/images/alamoana_hero_medium.jpg”:
<figure class="image-store-hero store-hero-alamoana"></figure>
这是包含图像作为背景图像的图形。
或者获取商店图片 URL 的最佳方式是什么?
提前致谢!
最佳答案
解决方案是:无法从站点获取带有 XPath 的图像。
正如您已经发现的,图像 URL 位于网站的 CSS 中。这意味着您必须使用 Scrapy 加载 CSS 文件并解析现在是 CSS 内容而不是 XML 的响应,这意味着您不能在非 XML 文档上使用 XPath。
然而,有一些库可用于解析 CSS——所以根据 figure
标签的 class
属性,您可以找到合适的 CSS 类定义并从那里提取背景图像。
关于python - 使用 Scrapy 获取 CSS 样式表上的背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33027687/