大丰网站建设公司电商网站合作

web/2025/9/26 23:43:17/文章来源:
大丰网站建设公司,电商网站合作,徐州制作公司网站,品牌设计主要做什么由于最近比较忙#xff0c;所以本周搞了一个相对简单的验证码#xff0c;就是抖音Tiktok的滑块验证码#xff0c;这也是接到客户的一个需求。这种验证码通常在电脑端登录抖音、巨量引擎的的时候出现。 首先看一下最终的效果#xff1a; 验证码识别过程 1、利用爬虫采集图…由于最近比较忙所以本周搞了一个相对简单的验证码就是抖音Tiktok的滑块验证码这也是接到客户的一个需求。这种验证码通常在电脑端登录抖音、巨量引擎的的时候出现。 首先看一下最终的效果 验证码识别过程 1、利用爬虫采集图像 由于是识别滑块缺口位置分析了一下大图已经包含了滑块缺口的位置信息所以这里只需要采集大图就够了。不需要小图进行比对这样可以简单一点。 1采集大图 2、人工标记 为了保障识别的精度这里需要进行大量的人工标记最好将误差控制在1-2像素以内这样训练出来的识别模型效果才好。 3、训练模型 4、测试验证 我们将训练好的模型用100张图片来进行测试发现全部都能正确识别位置所以正确率接近100%。因为100张测试图片比较少所以保守估计正确率应该在99%左右。 如果再想提升正确率可以再增加训练的数据量就需要再投入大量人力这个投入与提升产出比需要自己权衡。 5、实战测试 这里我就直接上代码就是文章开通动图的演示效果。我也将模型封装成了免费的接口给感兴趣的小伙伴调用得塔云 __author__ dengxinyanimport io import time import json import requests import urllib import random import base64 from io import BytesIO from PIL import Image, ImageDraw, ImageFont from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys from selenium.webdriver import ChromeOptions from selenium.webdriver import FirefoxOptions# PIL图片保存为base64编码 def PIL_base64(img, codingutf-8):img_format img.formatif img_format None:img_format JPEGformat_str JPEGif png img_format.lower():format_str PNGif gif img_format.lower():format_str gifif img.mode P:img img.convert(RGB)if img.mode RGBA:format_str PNGimg_format PNGoutput_buffer BytesIO()# img.save(output_buffer, formatformat_str)img.save(output_buffer, quality100, formatformat_str)byte_data output_buffer.getvalue()base64_str data:image/ img_format.lower() ;base64, base64.b64encode(byte_data).decode(coding)return base64_str# 验证码识别接口 def shibie(img):url http://www.detayun.cn/openapi/verify_code_identify/data {# 用户的keykey:nWrzPFUgFuqXQrCJJUME,# 验证码类型verify_idf_id:6,# 样例图片img_base64:PIL_base64(img),img_byte: None,# 中文点选空间语义类型验证码的文本描述这里缺省为空字符串words:}header {Content-Type: application/json}# 发送请求调用接口response requests.post(urlurl, jsondata, headersheader)print(response.text)return response.json()def run(headlessFalse):# 配置参数options FirefoxOptions()if headless:options.add_argument(--headless)else:options.add_argument(--window-size100,100)options.add_argument(--disable-blink-featuresAutomationControlled)options.add_argument(--disable-dev-shm-usage)options.set_preference(general.useragent.override, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36)driver webdriver.Firefox(executable_pathrF:\验证码项目\小红书旋转验证码\webdriver\geckodriver.exe, optionsoptions)# 伪装浏览器driver.execute_script(Object.defineProperty(navigator, webdriver, {get: () false,});)navigator_webdriver driver.execute_script(return navigator.webdriver)driver.execute_script(Object.defineProperty(navigator, plugins, {get: () [1, 2, 3, 4, 5],});)plugins_length driver.execute_script(return navigator.plugins.length)# 发送请求driver.get(https://business.oceanengine.com/login?appKey51)# 等待【请输入邮箱】元素出现WebDriverWait(driver, 20).until(lambda x: x.find_element_by_xpath(//input[placeholder请输入邮箱]))# 找到【请输入邮箱】元素tag1 driver.find_element_by_xpath(//input[placeholder请输入邮箱])# 点击【请输入邮箱】元素tag1.click()# 输入邮箱tag1.send_keys(123451111qq.com)# 等待【密码】元素出现WebDriverWait(driver, 20).until(lambda x: x.find_element_by_xpath(//input[placeholder密码]))# 找到【密码】元素tag2 driver.find_element_by_xpath(//input[placeholder密码])# 点击【密码】元素tag2.click()# 输入密码tag2.send_keys(13611112222)# 等待【用户协议】元素出现WebDriverWait(driver, 20).until(lambda x: x.find_element_by_xpath(//div[classaccount-center-agreement-check]))# 找到【用户协议】元素tag3 driver.find_element_by_xpath(//div[classaccount-center-agreement-check])# 点击【用户协议】元素tag3.click()# 等待【登录】元素出现WebDriverWait(driver, 20).until(lambda x: x.find_element_by_xpath(//button[classace-ui-btn account-center-action-button active ace-ui-btn-primary]))# 找到【登录】元素tag4 driver.find_element_by_xpath(//button[classace-ui-btn account-center-action-button active ace-ui-btn-primary])# 点击【登录】元素tag4.click()# 可能一次不成功需要多次滑动for i in range(5):# 等待【验证码大图】元素出现WebDriverWait(driver, 20).until(lambda x: x.find_element_by_xpath(//img[idcaptcha-verify-image]))# 找到【验证码大图】元素tag5 driver.find_element_by_xpath(//img[idcaptcha-verify-image])# 获取图像链接img_url tag5.get_attribute(src)print(img_url)header {Host: p9-catpcha.byteimg.com,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0,Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/webp,*/*;q0.8,Accept-Language: zh-CN,zh;q0.8,zh-TW;q0.7,zh-HK;q0.5,en-US;q0.3,en;q0.2,Accept-Encoding: gzip, deflate, br,Connection: keep-alive,Upgrade-Insecure-Requests: 1,}# 下载图片response requests.get(urlimg_url)img Image.open(BytesIO(response.content))y shibie(img)# 获得滑动像素距离y int(str(y[data][res_str]).replace(滑动,).replace(px,))# 等待【滑块】元素出现WebDriverWait(driver, 20).until(lambda x: x.find_element_by_xpath(//div[classsecsdk-captcha-drag-icon sc-kEYyzF fiQtnm]))# 找到【滑块】元素tag6 driver.find_element_by_xpath(//div[classsecsdk-captcha-drag-icon sc-kEYyzF fiQtnm])# 滑动滑块action ActionChains(driver)action.click_and_hold(tag6).perform()time.sleep(1)# 计算实际滑动距离 像素距离 * 滑动系数move_x y * 0.61# 滑动1直接滑动action.move_by_offset(move_x 20, 5)time.sleep(0.5)action.move_by_offset(-10, -15)time.sleep(0.5)action.move_by_offset(-10, 10)# 滑动2分段滑动# n (random.randint(5, 8))# move_x move_x / n# for i in range(n):# action.move_by_offset(move_x, 5)# time.sleep(0.5)time.sleep(1)# 释放鼠标action.release().perform()time.sleep(2)# 判断是否滑动成功try:# 等待【错误提示】元素出现WebDriverWait(driver, 5).until(lambda x: x.find_element_by_xpath(//div[classsc-htoDjs jwiskW]))# 等待【刷新】元素出现WebDriverWait(driver, 20).until(lambda x: x.find_element_by_xpath(//span[classsecsdk_captcha_refresh--text sc-bwzfXH gBXrMn]))# 找到【刷新】元素tag7 driver.find_element_by_xpath(//span[classsecsdk_captcha_refresh--text sc-bwzfXH gBXrMn])# 点击【刷新】元素tag7.click()time.sleep(1)except:breakif __name__ __main__:run(headlessFalse)6、总结分析 1抖音图片标注工作比较复杂我统计了一下背景图的种类超过800中所以给标注、识别增加了一定难度 2抖音的滑动轨迹检测比较厉害直接滑动到位完全无法通过分段轨迹也很难通过。所以我首先滑过再返回对齐这样就能完美一次通过验证最前面动图就是这样的效果 3抖音页面有很强的反爬措施检测我使用 selenium 始终无法通过验证始终不会条验证码。这一点如何防检测 selenium 也请各位大神指点。所以我代码使用的巨量引擎巨量引擎是字节跳动旗下的品牌网站进行的测试 各位大神也请指出我的不足或者有其他建议都可以给我留言或私信我谢谢指点。

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

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

相关文章

沈阳网站排名工具贵州省城乡建设厅网站

用户系统: 之前提到,linux是个多用户系统,所以要使用linux,首先你得是个用户 用户:普通用户管理员 每一个用户有自己的用户名密码, 会话(session):一个终端使用服务器的全过程 从你用户登录,到你…

网站制作方案大全弄美团网站的一般一个做赚多少钱

由全国高等院校计算机基础教育研究会指导,利亚德集团和爱迪斯通科技发起的数字人设计大赛正在火热进行中,同时进行的元宇宙数字人设计大赛校园行活动也正式拉开序幕,12月13日校园行活动—中国戏曲学院开讲。划重点:此次大赛已成为…

注入漏洞网站源码苏州360推广网站建设

文档链接:https://programmercarl.com/ LeetCode509.斐波那契数 题目链接:https://leetcode.cn/problems/fibonacci-number/ 思路: 动规五部曲: 这里我们要用一个一维dp数组来保存递归的结果 1.确定dp数组以及下标的含义 d…

网站做不做账网站建设国家有补贴吗

等保的全称是信息安全等级保护,是《网络安全法》规定的必须强制执行的,保障公民、社会、国家利益的重要工作。 官方定义:等级保护是对信息和信息载体按照重要性等级分级别进行保护的一种工作,指对国家重要信息、法人和其他组织及公…

建行商城网站网站维护更新费用

2653: middle Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 2381 Solved: 1340[Submit][Status][Discuss]Description 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整。给你一个长度为n的序…

整站排名怎么提升网站排名

【分享】Android JNI实例​ Android的SDK中没有包括JNI的支持,而且对如何支持JNI也没有任何文档说明。不过既然整个Android平台是开源的,我们可以通过Google发布的源代码来找到一些线索(比如frameworks/base/media/jni/目录)&…

怎么登陆建设u盾网站网络销售平台排名

目录 前言: 优点: 缺点: 饿汉式(静态变量方式) 懒汉式(线程不安全) 懒汉式(双重检查锁定) 推荐方式Lazy 总结: 前言: 这种模式涉及到一个单一的类&a…

大气集团网站模板免费素材库图片

什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机…

网站制作的主要流程怎么建立公司的网站吗

身份证正则判断 今天分享的是身份证的正则判断,在很多时候需要到,所以在这里记录下来。之前做正则判断的时候,有一些小瑕疵,判断不够全面,正则判断,结构紧凑,全面的判断很重要,所以…

建网站 技术wordpress加图标

父向子通信 1.定义props 子组件中,定义期望接收的属性。例如,在子组件的script部分: export default {props: {message: String // 假设父组件要传递一个字符串类型的数据} } 2.传递数据 在父组件的模板中,通过属性绑定的方式将…

wordpress 企业网站模板dw网页制作视频

要在 Python 中使用 MySQL 数据库进行增删改查(CRUD)操作,你可以使用 pymysql 库。以下是一些示例代码,展示如何实现这些操作。 首先,确保你已经安装了 pymysql。如果没有安装,可以通过以下命令安装&#…

做盗版视频网站违法吗湖北智能网站建设推荐

伦敦大学学院(UCL)的研究团队,提出了“一个激进的新模型,与所有数据相匹配,并最终优雅地展示出了古希腊人眼中的宇宙”。1901年,在希腊岛屿安提基特拉的海岸,潜水员偶然发现了一艘古代沉船。沉船中的一件文物&#xff…

做网站也是一门技术外贸网站英文版

一、MySQL自带的压力测试工具——Mysqlslapmysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较。mysqlslap为mysql性能优化前后提供了直观的验…

带搜索网站建设视频教程木纹背景的精致wordpress企业主题

美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在…

网站建设与管理基础公司建设网站的申请信用卡

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼(165)Internet的邮件传输协议标准为_______。A)SNMP B)SMTP C)FTP D)TELNET答 案:B知识点:浏览器、电了邮件及Web服务器的安全特性评 析:SNMP即简单网络管理协议;SMTP即简单邮件传输协…

做网站设计需求wordpress外贸数码

github打不开的几种解决方案 参考文章 GitHub 加速镜像 以下是两个免费的 GitHub 公益加速项目 kkgithub.com仅需在 github.com 的 g 前加上 kk,就可正常访问 GitHub。 例如: https://github.com/tldraw/tldraw 将链接更换后: https://…

招商网站建设解决方案建设一个手机网站需要多少钱

正则表达式的作用是匹配文本,将一个模式(正则表达式)与一个文本串进行比较,mysql允许你指定正则表达式,过滤select检索出的数据。但是mysql仅仅支持正则表达式的一个子集。 1、基本字符匹配: select prod_n…

网站备案信息可以改吗用wordpress做论坛

异常就是代表程序出现的问题 父类:Exception 编译时异常:没有继承RuntimeException的异常,直接继承于Exception。编译阶段就会错误提示。 运行时异常:RuntimeException本身和子类。编译阶段没有错误提示,运行时出现…

东莞大岭山做网站公司如何建设考研网站

这种在Halcon中直接导出的代码不能直接放程序中,应该在控件中比如一个按钮中,就不会出错了。

泰安网站建设制作服务visual studio怎么做网页

在安防监控工程中,需要应用到很多的视频光端机,但是我们在使用视频光端机的过程中,往往不可避免的会出现一些故障问题,那针对这些故障问题我们该如何检测以及处理呢?今天,飞畅科技的小编为大家专门整理了几…