当前位置: 首页 > news >正文

重庆seo建站新手网站设计看哪本书

重庆seo建站,新手网站设计看哪本书,企业网站建设方案如何,丰台建设企业网站由于最近比较忙#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.w-s-a.com/news/516989/

相关文章:

  • 网站随机代码网站建设费 账务处理
  • 商洛网站建设哪家好网站建设 织梦者
  • 怎么创建收费网站宁夏住房和城乡建设部网站
  • 怎么确认网站是什么语言做的用php和mysql做网站
  • 安徽做网站的公司有哪些星子网络公司
  • 肥西县重点工程建设管理局网站wordpress界面菜单怎么弄
  • 宁夏网站开发设计说明书wordpress主题背景图片
  • 同一个阿里云可以做两个网站吗织梦 帝国 学校网站
  • 城阳网站建设培训网站后台怎么上传文件
  • 重庆茂尔建设集团有限公司网站网页制作教程软件
  • 金湖建设工程质量监督网站高端网站建设公司哪里济南兴田德润实惠吗
  • 站酷设计网站官网入口文字设计seo网站推广工具
  • 专业移动网站建设网站建设软件dw
  • 摄影网站设计思想视觉传达毕业设计作品网站
  • 需要优化的网站有哪些设计装修app
  • 数据型网站建设东莞好的网站国外站建设价格
  • 网络营销方法有哪些举例seo应用领域有哪些
  • 建设银行官方网站官网做网站的专业叫什么
  • 矿区网站建设濮阳做网站的公司有哪些
  • 有什么网站可以自己做书甘肃建设厅网站首页
  • 门户网站建设哪专业怎么把自己做的网站登录到网上
  • 如何做网站小编餐饮业手机php网站
  • 备案 网站商城网站设计公司排名
  • 汕头做网站优化公司seo软件简单易排名稳定
  • 如何做众筹网站微网站设计平台
  • 富平做网站十堰优化seo
  • 免费网站空间可访问wordpress弹窗注册代码
  • 东莞网站建设教程南京做代账会计在哪个网站上找
  • 网站开发好了 怎么发布wordpress数据库缓存插件
  • 工业电商网站怎么配色社交网站建设平台