整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Element UI 组件库提供了丰富的UI组件

Element UI 组件库提供了丰富的UI组件

lement UI 组件库提供了丰富的UI组件,涵盖了页面布局、表单、数据展示、导航、反馈等各个方面,能够帮助开发者快速构建现代化的用户界面。

布局组件

Container: 布局容器,用于划分页面区域。

Flexbox: 布局容器,使用 flexbox 布局属性进行布局。

Grid: 布局容器,使用 CSS Grid 布局属性进行布局。

Spacer: 间隔块,用于控制元素之间的间距。

表单组件

Form: 表单组件,用于收集用户输入的数据。

FormItem: 表单项组件,用于表示表单中的一个字段。

Input: 输入框组件,用于用户输入文本。

Select: 下拉选择框组件,用于用户选择选项。

Checkbox: 复选框组件,用于用户选择多个选项。

Radio: 单选框组件,用于用户选择一个选项。

Switch: 开关组件,用于用户开启或关闭功能。

Slider: 滑动条组件,用于用户选择数值。

Upload: 上传组件,用于用户上传文件。

数据展示组件

Table: 表格组件,用于展示数据。

Tree: 树形控件组件,用于展示层级数据。

Tag: 标签组件,用于展示信息。

Pagination: 分页组件,用于对数据进行分页。

导航组件

Menu: 菜单组件,用于提供导航功能。

Breadcrumb: 面包屑组件,用于指示用户的当前位置。

Steps: 步骤条组件,用于引导用户完成操作。

反馈组件

Dialog: 对话框组件,用于向用户展示信息或收集用户输入。

MessageBox: 消息框组件,用于向用户提示信息。

Tooltip: 浮动提示组件,用于向用户展示额外的信息。

Popover: 气泡框组件,用于向用户展示详细的信息。

其他组件

Button: 按钮组件,用于触发操作。

Icon: 图标组件,用于展示图标。

Progress: 进度条组件,用于指示操作的进度。

Badge: 徽章组件,用于展示提示信息。

Alert: 警告组件,用于提示用户错误或危险信息。

以上只是 Element UI 组件库的主要分类及其包含的组件,还有一些其他组件没有列出,例如:

Card: 卡片组件

Avatar: 头像组件

Empty: 空状态组件

Rate: 评分组件

开发者可以根据自己的需求选择合适的组件进行使用。

Element UI 组件库提供了丰富的属性和方法,用于配置和控制组件的行为。开发者可以查阅 Element UI 官方文档来了解各个组件的详细用法。

Element UI 组件的优点

Element UI 组件库具有以下优点:

功能丰富:提供了丰富的UI组件,能够满足大多数开发需求。

易于使用:组件的API设计简单易懂,上手容易。

响应式设计:组件支持响应式设计,能够自动适应不同设备的屏幕尺寸。

主题定制:提供了丰富的主题,开发者可以根据自己的需求进行定制。

社区活跃:拥有庞大的社区,开发者可以相互交流学习。

应该都很熟悉

点击滑块然后移动到图片缺口进行验证

现在越来越多的网站使用这样的验证方式

为的是增加验证码识别的难度

那么

对于这种验证码

应该怎么破呢

接下来就是

打开 b 站的登录页面

https://passport.bilibili.com/login

image

可以看到登录的时候需要进行滑块验证

按下 F12

进入 Network

看下我们将滑块移到缺口松开之后做了什么提交

可以看到是一个 GET 请求

但是

这请求链接也太特么长了吧

我们来看看请求的参数是怎么样的

哇靠

gt?

challenge?

w?

这些都是什么鬼参数

还加密了

完全下不了手啊

既然以请求的方式不好弄

我们从它们的源代码入手

看看有什么突破口

回到 b 站的登录页

按下 F12

进入 Element

然后点击滑块出现了图片

定位一下

发现有两个 a 标签

一个 class 是 gt_bg gt_show

一个 class 是 gt_fullbg gt_show

和小帅b想的一样

这个验证码应该是有两张图片

一张是完全的背景图片

一张是缺口的图片

那把这两张图片下载下来对比一下不就行了

打开 a 标签一看

一张图片被切割成很多小块

原来这张图片是拼出来的

我们看看原始图片是怎么样的

记得私信小编【学习】领取Python学习教程哦。

什么乱七八糟的

再仔细看下源代码

原来是在同一张图片通过偏移量合成了一张完整的图片

background-position: -277px -58px;

看了一下缺口的图片也是如此

到这里

我们的第一个思路就是

下载这两张原始图片

然后通过偏移量合成两张真正的图片

背景图

image

缺口图

↓变身

那么怎么做呢?

因为我们还要模拟滑动滑块

所以呢

我们要用到selenium

打开b站的登录页

然后等到那个滑块显示出来

# 获取滑块按钮

接下来我们就获取页面的源码

driver.page_source

然后使用bs 获取两张原始背景图片的 url

bs=BeautifulSoup(driver.page_source,'lxml')

拿到了图片地址之后

将图片下载下来

# 将图片格式存为 jpg 格式

ok

我们已经把两张原始图片下载下来了

那么接下来就是要合成图片了

我们要根据图片的位置来合成

也就是源码中的 background-position

获取每一个小图片的位置

我们可以通过字典的形式来表示这些位置

然后将数据放到列表中

# 存放每个合成缺口背景图片的位置

那么

现在我们已经有了原始图片

还知道了每个位置应该显示原始图片的什么部分

接下来我们就写一个方法

用来合成图片

# 写入图片

那么问题又来了

怎么合成啊

我们再看看一开始分析的图片

这里图片被分割成的每一个小图片的尺寸是

10 * 58

所以我们也要将我们刚刚下载的原始图片切割成相应的尺寸大小

而且

这张图片是由上半部分的小图片和下半部分的小图片合成的

所以我们定义两个 list 来装这些小图片

# 存放上下部分的各个小块

然后将原始的图片切割好放进去

image=Image.open(image_file)

至此

我们这两个 list 就分别放好了各个切割的图片了

那么接下来就创建一张空白的图片

然后将小图片一张一张(间距为10)的粘贴到空白图片里

这样我们就可以得到一张合成好的图片了

# 创建一张大小一样的图片

那么到现在

我们可以得到网页上显示的那两张图片了

一张完全的图片

一张带缺口的图片

接下来我们就要通过对比这两张图

看看我们要滑动的距离是多远

# 合成图片

可以通过图片的 RGB 来计算

我们设定一个阈值

如果 r、g、b 大于这个阈值

我们就返回距离

def get_distance(bg_Image, fullbg_Image):

现在

我们知道了关键的滑动距离了

激动人心的时刻到了

我们使用 selenium

拿到滑块的元素

然后根据这个距离拖动到缺口位置不就好了么

马上打开 selenium 的文档

看到了这个函数

它可以使用左键点击元素

然后拖动到指定距离

最后释放鼠标左键

knob=WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#gc-box > div > div.gt_slider > div.gt_slider_knob.gt_show")))

运行一下试试看吧

妖怪吃了拼图了

看来直接拖拽是不行的

试着拖完滑块让它睡一下再释放

ActionChains(driver).click_and_hold(knob).perform()

发现拼图还是特么的被妖怪吃了

有个叫匀速直线运动的东西

什么 加速度

什么 v=v0 + at

什么 s=?at2

什么鬼

回到正题

我们可以使用它来构造一个运动路径

该加速时加速

该减速的时候减速

这样的话就更像人类在滑动滑块了

这次

我们使用这个轨迹来滑动

knob=WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#gc-box > div > div.gt_slider > div.gt_slider_knob.gt_show")))

好了好了

我们再来运行一下吧

哈哈哈

成功识别了

当然了

成功率不是 100%

可以多调戏它几次

以上就是识别滑动验证码的具体过程了

对于其它大部分的滑动验证码

也是可以使用这招搞定的

最后如果你依然在编程的世界里迷茫,不知道自己的未来规划,对python感兴趣,小编为初学者们准备的python入门教程!

请私信回复:“学习”就可以拿到一份我为大家准备的Python学习资料!希望能帮助你更了解python,学习python。

完整代码:

lexslider是一款基于的jQuery内容滚动插件。可以使用它轻松实现各种图片轮播效果、焦点图效果。而且可以自动播放,使用导航按钮和键盘来控制。可定制性非常高。

效果图:

具有特征:

支持图文混排,html元素。

支持滑动和淡入淡出效果。

支持水平、垂直方向滑动。

支持键盘方向键控制。

支持触控滑动。

自适应屏幕尺寸。

可控制滑动单元个数。

更多选项设置和回调函数。

Flexslider的使用方法:

首先载入jquery库文件和Flexslider插件,还有Flexslider所需的基本css样式文件。

HTML代码:

我们使用了.flexslider来包括所有需要滚动的内容元素,然后使用<ul class="slides">这个class非常关键,内部的滚动内容都是针对.slides的,然后在<li>内部加入任意html元素,包括图片和文字。

JQuery调用Flexslider插件非常简单,使用如下代码:

参数选项: