【问题标题】:How to Scrape CSS icon with python and beautiful soup如何用 python 和漂亮的汤刮掉 CSS 图标
【发布时间】:2019-12-17 09:50:24
【问题描述】:

我正在抓取website 的付款方式,但所有付款方式都是在 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 类用于在页面上显示图标。

【问题讨论】:

  • 你试过什么?发布您的代码
  • 我尝试了简单的代码。我不知道如何抓取这些 CSS 图像。 payment_method = soup.find("div", class_="footer-second") payment_method = payment_method.find("div", class_="drz-footer-width-25 payment-column") payment_method = payment_method.find_all("跨度")

标签: python python-3.x web-scraping beautifulsoup


【解决方案1】:

它来自一个图片网址。您需要从相关源 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 文件的链接。

【讨论】:

  • 当我实现你的代码时,出现语法错误 p = re.compile(r'icon-yatra-v-pk{.*\.drz-footer-sprit{background-image:url ((.*?));').
  • 您确定复制正确吗?我只是再次运行它没有问题。您在上面粘贴的内容不正确。你还没有逃脱 ()
  • 我从您的答案中复制编译代码并将其粘贴到此答案中。请分享您运行的 p = re.compile 代码。
  • p = re.compile(r'icon-yatra-v-pk{.*\.drz-footer-sprit{background-image:url\((.*?)\);')
  • 谢谢,它有效。另一个问题,我只想从所有这些图像中得到一两张图像,比如签证或万事达卡。我该怎么做?该网站正在单独显示这些图像,但我们正在聚在一起。
猜你喜欢
  • 2017-08-15
  • 2015-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
  • 2018-12-21
相关资源
最近更新 更多