学爬虫,吃牢饭,卑微前端小丑复制antd的icon图标真的太难啦,我用python几秒扒完

news2025/1/11 5:51:39

目标需求

最近用react+vite+antd写了个后管项目,在菜单管理中,需要用户选择菜单的icon图标。

如下:

在这里插入图片描述

而在react中使用antd UI库,每个组件都是需要单独导入的,也就是说,如果我要用到所有icon,我需要先把它们全部都导入进来。他不是和vue一样,用组件只用改个名字就行。如果那样还省事了。

antd of react的用法:

import { Button } from 'antd';
import { StepBackwardOutlined } from '@ant-design/icons';
import React from 'react';
const App = () => (
  <>
    <Button type="primary">
    	按钮
    	<StepBackwardOutlined />
	</Button>
  </>
);
export default App;

antd icon:

在这里插入图片描述

然后我就看着UI库中的icon图标陷入了沉思,这tmd少说也有几百个吧,tmd这要挨个cv,这要复制到什么时候去?沙雕项目经理又一直催催催,他媳妇生孩子都没这么着急。

主要写的还是react18,antd5.0的,全都是最新的,妈的痛恨蚂蚁,为什么要改成这个样子,因为好久之前的版本都不需要导入。

在cv5分钟之后我就发疯了,这玩意谁爱写谁写,我就意识到了python这个东西,他妈的,之前怎么就没想到用python扒一下呢?说明人在一心干一件事的时候,眼里容不下别的东西,就像她和别人亲嘴的时候脑子里肯定不会是你!!!

分析实现

说干就干!主打的就是一个偷懒,不,睿智。

我们先打开一下antd库的代码大致看一下结构:

他有5个UI标签,icon就装在这个里面了。请记住这五个Ul的class名:anticons-list

在这里插入图片描述

在往下看,他的icon名字放在哪个标签下面,我们主要就是获取icon的名称,请记住这个span的class名:ant-badge

在这里插入图片描述
那这就简单多了呗,大致说一下思路,先把这网页抓下来,在去遍历一下span。

打开我们的PyCharm,新建一个icon.py。步骤:请求,抓取,遍历,最后打印。

那就用到两个库:
requests 请求
BeautifulSoup 从html中提取数据

直接上代码:

import requests
from bs4 import BeautifulSoup


def getIcon():
    #请求antd UI库
    url = 'https://4x.ant.design/components/icon-cn/#API'
    response = requests.get(url)

    # 获取html数据
    html = response.text
    soup = BeautifulSoup(html, 'html.parser')
    
    # 从数据中查找类名为 anticons-list 的ul标签,下标为0是查找第一个
    ul = soup.findAll("ul",{"class":"anticons-list"})[0]
    # 从提取出来的ul中查找类名为ant-badge的span标签
    span = ul.findAll("span",{'class': 'ant-badge'})
    
    # 遍历提取
    if span:
        for i in span:
            print(i.text+",")

getIcon()

运行结果:

在这里插入图片描述

他有5个Ul标签,毕竟五个类型的图标嘛,我是直接下标,一个一个获取的。如果有时间的话,就直接写个遍历了,在套一层,但太麻烦,我只要最简单的方法用最快的速度去干最漂亮的事。

CV大法一套下来,怎么着不得一个小时。我用python几秒爬完,但人可不能几秒啊。

爬虫已学废,牢饭很好吃。

我是江太公,山水有相逢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/536312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊云科技进一步加快BMW Group的Analytics步伐

BMW Group和亚马逊云科技于2020年宣布达成全面战略合作。本次合作的目标是通过将数据分析置于决策中心&#xff0c;进一步加快BMW Group的创新步伐。本次合作的一个关键要素是进一步开发BMW Group的云数据中心&#xff08;CDH&#xff09;。这是在云端管理全公司数据和数据解决…

windows_exporter 部署

目录 - 配置服务- 配置prometheus - 配置服务 下载地址&#xff1a; https://github.com/prometheus-community/windows_exporter/releases 从github上下载windows_exporter.msi&#xff08;我下载的是windows_exporter-0.22.0-amd64.msi&#xff09;cmd命令&#xff1a;msie…

对 API 中敏感数据检测,用这个插件就好了

Postcat 中的 openDLP 插件基于 openDLP 开源项目&#xff0c;针对 Postcat 场景实现了敏感 API 发现功能&#xff0c;通过扫描 API 文档&#xff0c;识别该 API 是否可能是一个涉及敏感数据的 API。 目前内置支持 17 类敏感数据类型&#xff0c;可以通过自定义正则支持更多类型…

2023年安全岗秋招经验分享,纯干货,建议收藏!

需要准备的几个方向 简历自我介绍计算机网络操作系统&#xff08;操作系统原理&#xff0c;Linux&#xff0c;Windows&#xff09;数据库算法&#xff08;Leetcode&#xff09;编程语言&#xff08;Python,C,go等&#xff09;安全知识&#xff08;很多很杂&#xff0c;建议根据…

python3 爬虫相关学习3:response= requests.get(url)的各种属性

目录 1 requests.get(url) 的各种属性&#xff0c;也就是response的各种属性 2 下面进行测试 2.1 response.text 1.2 response.content.decode() 1.2.1 response.content.decode() 或者 response.content.decode("utf-8") 1.2.2 response.content.decode(…

实验室信息管理系统源码,LIS系统源码

云LIS系统是医院信息管理的重要组成部分之一&#xff0c;系统集申请、采样、核收、计费、检验、审核、发布、质控、查询、耗材控制等检验科工作为一体的网络管理系统。LIS系统不仅是自动接收检验数据&#xff0c;打印检验报告&#xff0c;系统保存检验信息的工具&#xff0c;而…

平抑风电波动的电-氢混合储能容量优化配置(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

22届硕士,去年秋招拿了字节跳动offer,有一说一,不是很难进

自从抖音短视频APP火了之后&#xff0c;起公司字节跳动也逐渐向着大厂靠拢&#xff0c;相信大家都已经对这家公司很熟悉了&#xff0c;尤其是近几年来&#xff0c;对它的认识也在不断刷新&#xff0c;它惊人的发展速度确实让行业内人刮目相看&#xff0c;如今很多年轻人也想要挤…

【工作记录】springsecurity从入门到实战(一)

一、介绍 在web应用开发中&#xff0c;安全无疑是十分重要的&#xff0c;目前最流行的安全框架莫过于shiro和springsecurity了。 以下是二者简单的一个对比: SpringSecurityShiro基本功能完善完善文档完善程度强大强大社区支持度依托于Spring&#xff0c;社区支持强大强大集…

Flutter仿写微信导航栏快速实现页面导航

文章目录 前言使用TabBar实现TabBar介绍TabBar的重要属性说明TabBarView介绍TabBarView的重要属性TabBar总结TabBar实现底部导航的例子 BottomNavigationBar实现BottomNavigationBar介绍BottomNavigationBar实现底部导航栏的例子 总结BottomNavigationBarTabBar根据实际情况选择…

代码随想录算法训练营day43 | 1049. 最后一块石头的重量 II ,494. 目标和,474.一和零,01背包问题总结

代码随想录算法训练营day43 | 1049. 最后一块石头的重量 II &#xff0c;494. 目标和&#xff0c;474.一和零 1049. 最后一块石头的重量 II解法一&#xff1a;动态规划 494. 目标和解法一&#xff1a;动态规划 474.一和零解法一&#xff1a;动态规划 01背包问题总结 1049. 最后…

商场导航地图系统,商场导航怎么实现?

商场导航怎么实现&#xff1f;在商场里面&#xff0c;手机上的导航往往接收不了信号或者不支持&#xff0c;由于室内不只是平面的&#xff0c;跟室外导航有很大的区别&#xff0c;因此&#xff0c;室内如何快速导航就成了现代化发展的趋势。电子地图作为大家最喜闻乐见的高效应…

交换机欺骗(Switch Spoofing)简介

交换机欺骗是修改设备的 MAC 地址以伪装成授权交换机端口并获得对目标网络的访问权限的过程。由于 MAC 地址对于特定设备是唯一的&#xff0c;因此大多数网络使用这些 MAC 地址来验证设备并与其通信或建立网络连接。通过欺骗授权设备或更简单地说&#xff0c;网络识别为“受信任…

redis_exporter 部署

目录 - 下载地址- 启动vim ./start.shvim ./stop.sh - 配置prometheus - 下载地址 https://github.com/oliver006/redis_exporter/releases - 启动 为了方便辨认 我更改了它的端口&#xff0c;并编了./start.sh和./stop.sh两个脚本方便以后启动&#xff0c;语句如下&#xf…

机器学习之逻辑回归、一(学习理论)

P(D|θ&#xff09; 文章目录 一、前言二、逻辑回归的由来三、到底什么是逻辑回归&#xff08;1&#xff09;. 先对逻辑回归有个大概感觉&#xff08;2&#xff09;.逻辑回归与线性回归的区别&#xff08;3&#xff09;.sigmoid函数&#xff08;4&#xff09;目标函数&#xf…

有关于ChatGPT你需要了解的内容应该都在这了,看这一篇就够啦

在国内用了很长一段时间的ChatGPT&#xff0c;每次跟小白&#xff0c;哪怕是用ChatGPT的人交流的时候&#xff0c;都感觉解释不清&#xff0c;正好今天周末&#xff0c;给大家整理一篇关于ChatGPT的科普文&#xff0c;想要了解或使用ChatGPT的人&#xff0c;一定要看完~~~ 什么…

内网渗透(CS与MSF联动) ATTCK实战系列一红队实战(一)

靶场下载地址: http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ 拓扑图 环境配置 win7网络配置情况: 外网 内网域网络 Win2K3网络配置情况: 内网域网络 win2008(域控)网络配置情况: 内网域网络 渗透过程 开始之前&#xff0c;先到win7上开启phpstudy 打开网页&#…

安装 kubeadm

安装 kubeadm、kubelet 和 kubectl 基于Red Hat的发行版本 1、写入软件源 cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] nameKubernetes baseurlhttps://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch enabled1 gpgcheck1 …

盘点谷歌26个插件生态;WPS AI上新与测评;Prompt中文指南;ChatGPT最新联网插件评测 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 『Google 最新发布的26个插件&#xff0c;哪些ChatGPT也有&#xff1f;』插件生态初见端倪 ▢ Google自家生态 (9个)&#xff1a;办公…

CATIA操作经典技巧问答

如何快速知道当前的CATIA作图区上的零件的放大比例? 答:选中TOOLS----->OPTIONS----->VISUALIZATION----> DISPLAY CURRENT SCALE IN PARALLEL, MODE 的选项. 在屏幕的右下方的数值表示当前作图区内的几何体的显示比例。 如何快速定义草图方向? 答:按CTRL键点选在…