首页 > 解决方案 > 如何用 python 和漂亮的汤刮掉 CSS 图标

问题描述

我正在抓取网站的付款方式,但所有付款方式都是在 CSS 的帮助下添加的。我不知道如何抓取该代码。我试图在 StackOverflow 上找到,但找不到任何有用的材料。付款方式在页面底部的左下角给出。

payment_method = soup.find("div", class_="footer-second")
payyment_method = payment_method.find("div", class_="drz-footer-width-25 payment-column")
payment_method = payment_method.find_all("span")

这是我使用的代码。但是我不知道如何抓取无法进一步编码的类图像或图像链接。标签中没有 href 或 src 链接,只有 CSS 类用于在页面上显示图标。

标签: pythonpython-3.xweb-scrapingbeautifulsoup

解决方案


它来自图像网址。您需要从相关源 css 文件中正则表达式输出图像 url,然后尝试某种形式的光学识别软件。以下为您提供网址。

import requests, re

r = requests.get('https://laz-g-cdn.alicdn.com/lzdmod/desktop-footer-daraz/5.2.38/??pc/index.css')
p = re.compile(r'icon-yatra-v-pk{.*\.drz-footer-sprit{background-image:url\((.*?)\);')
image_url = 'https:' + p.findall(r.text)[0]
print(image_url)

正则表达式:

在此处输入图像描述

css 指令通过类属性和 css 样式指令将此图像的一部分“放入框架”中。例如,.icon-yatra-payment-8在浏览器中输入并回车,然后检查节点的 css 指令;您将看到指定的背景位置、宽度和高度以及作为内联块的背景图像。您还将看到这些说明的源 css 文件的链接。


推荐阅读