python - 使用 Scrapy 获取 CSS 样式表上的背景图片

标签 python css web-crawler scrapy background-image

我开始使用 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/

相关文章:

python - 如何在排除 NaN 值列的同时合并两个数据框?

javascript - 如何正确制作垂直可滚动区域

javascript - 如何制作一个使用 Javascript 路由器的可索引网站?

html - 我怎样才能把列表文本放在中间?

ruby - Ruby 正则表达式的问题

symfony - 如何在Crawler每个函数中传递一个元素?

python - AWS Lambda 函数触发两次

python - Pyodbc - 在表内加载数据导致错误

Python:通过 'list[a:b]' 的迭代是否首先复制列表的那部分(这可能很昂贵)?

javascript - 如何逐渐设置正在(冒泡)排序的元素的样式?