使用 Scrapy 获取 CSS 样式表上的背景图像

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 的最佳方式是什么?

提前致谢!

GHa*_*jba 2

解决办法是:没有办法从站点获取带有XPath的图像。

正如您已经发现的,图像 URL 位于网站的 CSS 中。这意味着您必须使用 Scrapy 加载 CSS 文件并解析响应,该响应现在是 CSS 内容而不是 XML,这意味着您不能在非 XML 文档上使用 XPath。

然而,有一些库可用于解析 CSS —— 因此,根据标签class的属性figure,您可以找到适当的 CSS 类定义并从那里提取背景图像。

  • 你能举出一些用于在 python 中解析 CSS 的库的例子吗? (3认同)