Rox*_*oxy 5 css python web-crawler background-image scrapy
我开始使用 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");
}
Run Code Online (Sandbox Code Playgroud)
我如何通过使用 xpath 来抓取“ http://images.apple.com/retail/alamoana/images/alamoana_hero_medium.jpg ”:
<figure class="image-store-hero store-hero-alamoana"></figure>
Run Code Online (Sandbox Code Playgroud)
这是包含图像作为背景图像的图形。
或者获取商店图片 URL 的最佳方式是什么?
提前致谢!
解决办法是:没有办法从站点获取带有XPath的图像。
正如您已经发现的,图像 URL 位于网站的 CSS 中。这意味着您必须使用 Scrapy 加载 CSS 文件并解析响应,该响应现在是 CSS 内容而不是 XML,这意味着您不能在非 XML 文档上使用 XPath。
然而,有一些库可用于解析 CSS —— 因此,根据标签class的属性figure,您可以找到适当的 CSS 类定义并从那里提取背景图像。