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

两当网站建设网站设计时间

两当网站建设,网站设计时间,wordpress免费主题排行榜,wordpress多媒体 存在哪张表在爬虫过程中,验证码和滑块验证是常见的反爬措施。针对这些挑战,通常采用OCR识别图形验证码和模拟滑块拖动来处理滑块验证。以下是如何处理这两种类型验证的详细方法。 1. 图形验证码(OCR) a. 使用 tesserocr 和 Pillow 处理图形…

在爬虫过程中,验证码和滑块验证是常见的反爬措施。针对这些挑战,通常采用OCR识别图形验证码和模拟滑块拖动来处理滑块验证。以下是如何处理这两种类型验证的详细方法。

1. 图形验证码(OCR)

a. 使用 tesserocrPillow 处理图形验证码

tesserocr 是基于 Tesseract OCR 引擎的 Python 封装,常用来识别简单的图形验证码。如果验证码不太复杂,可以用它来识别文本。

步骤:
  1. 安装依赖:

    pip install tesserocr pillow
    

  2. 验证码处理示例:

import re
import tesserocr
from PIL import Image
from io import BytesIO
from selenium import webdriver# 预处理验证码图像
def preprocess(image):image = image.convert('L')  # 转换为灰度图像image = image.point(lambda x: 0 if x < 140 else 255)  # 二值化处理return image# 打开浏览器并获取验证码
browser = webdriver.Chrome()
browser.get('https://captcha7.scrape.center/')  # 更换为你的验证码页面captcha_element = browser.find_element_by_css_selector('#captcha')
captcha_image = Image.open(BytesIO(captcha_element.screenshot_as_png))# 图像预处理
processed_image = preprocess(captcha_image)# OCR识别验证码
captcha_text = tesserocr.image_to_text(processed_image)
captcha_text = re.sub(r'\W', '', captcha_text)  # 移除非字母数字字符
print('识别的验证码:', captcha_text)browser.quit()
b. 如果验证码非常复杂,可能需要:
  • 更好的图像预处理(如降噪、去除背景)。
  • 使用机器学习模型来识别复杂验证码。

2. 滑块验证

滑块验证是一种基于用户拖动操作的验证形式,通常在登录、注册等过程中遇到。可以使用 Selenium 模拟滑动操作,并且通过 ActionChains 实现拖拽效果。

滑块验证的步骤:
  1. 定位滑块和拖动轨道
  2. 模拟拖动动作(通过ActionChains模拟滑动轨迹)。
代码示例:
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By# 初始化浏览器
browser = webdriver.Chrome()
browser.get('https://example.com')  # 替换为有滑块验证的网页# 等待加载完成并找到滑块
time.sleep(2)  # 等待页面加载
slider = browser.find_element(By.CSS_SELECTOR, '.slider-button')  # 滑块选择器
slider_track = browser.find_element(By.CSS_SELECTOR, '.slider-track')  # 滑动轨道选择器# 模拟拖动滑块
action = ActionChains(browser)# 拖动操作,假设滑动距离为轨道宽度
action.click_and_hold(slider).perform()
action.move_by_offset(300, 0).perform()  # 300是大致的滑动距离,可能需要动态计算
action.release().perform()# 模拟滑动后等待验证
time.sleep(2)browser.quit()
c. 滑动轨迹的处理:
  • 滑动轨迹可以通过计算滑块轨道的宽度或者通过图像处理找到滑块的终点。
  • 滑块验证往往不仅要求完成动作,还要求模拟人类的行为(加速、减速,非匀速滑动),否则可能会失败。

滑动行为模拟:

import random
import time# 生成随机滑动轨迹
def generate_track(distance):track = []current = 0mid = distance * 4 / 5t = 0.2v = 0while current < distance:if current < mid:a = 2else:a = -3v0 = vv = v0 + a * tmove = v0 * t + 1 / 2 * a * t * tcurrent += movetrack.append(round(move))return track# 使用 ActionChains 模拟拖动
def simulate_dragging(browser, slider, distance):track = generate_track(distance)action = ActionChains(browser)action.click_and_hold(slider)for x in track:action.move_by_offset(xoffset=x, yoffset=0)action.release().perform()slider = browser.find_element(By.CSS_SELECTOR, '.slider-button')
simulate_dragging(browser, slider, 300)

这个代码生成的滑动轨迹会有加速和减速,模拟人类操作。

总结:

  • 图形验证码:使用 tesserocr 结合预处理来识别简单的验证码;如果验证码复杂,可以使用机器学习。
  • 滑块验证:使用 SeleniumActionChains 模拟拖动操作,并生成人类模拟的轨迹避免被检测为机器操作。

如果验证码或滑块验证过于复杂,可以考虑使用打码平台(如 Ruokuai、2Captcha)来自动识别验证码和滑块验证。

http://www.yayakq.cn/news/846955/

相关文章:

  • 无极网站网站做淘宝店招的网站
  • 免费招聘网站都有哪些杭州房产信息网
  • 建设彩票网站需要多少投资重庆森林讲的什么内容
  • 定制网站建设推广方案永久免费高配云服务器
  • 网站的登陆注册页面怎么做百度推广如何计费
  • 义乌网站建设zisou8做网站一个程序员够吗
  • 悦然外贸建站手机英语网站
  • 网站建设代理移动端网站建设的好处
  • 校园网站建设费用大型行业门户网站开发建设
  • 绵阳网站建设制作自动添加内部链接的wordpress插件
  • 用什么软件可以做网站做企业专业网站一般要多少钱
  • 做软件挣钱的网站seo1短视频网页入口营销
  • 企业网站托管后果模仿淘宝网站
  • 硅云买域名做网站徐州在线制作网站
  • 社交和门户网站的区别网站建设 数据归属
  • 网站开发语言作用网站优化关键词
  • php商务网站开发棋牌游戏网站建设费用
  • 浙江制做网站的公司深圳石岩做网站的公司
  • 贵阳网站建设设计tk域名官方网站
  • 服务网站欣赏全国定制网站服务器云主机
  • 怎么选择昆明网站建设东莞化工网站建设
  • 查询网站备案密码是什么玖久建筑网
  • 长春做网站团队济宁做网站的企业
  • 个人网站设计论文下载华为官网手机商城app
  • 杜集网站建设开发一个网站的步骤流程
  • 大学生兼职网站建设策划书新媒体营销和网络营销的区别
  • 模板建站难吗seo工程师是什么职业
  • 七色板网站建设h5游戏网站建设
  • 四川禾力建设工程质量检测有限公司网站wordpress标签页
  • 佛山市网站建设企业wordpress 颜色选择器