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

windows 2003做网站网站推广的渠道有

windows 2003做网站,网站推广的渠道有,建企业网站价格,专业的金融行业网站开发在爬虫过程中,验证码和滑块验证是常见的反爬措施。针对这些挑战,通常采用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.ds6.com.cn/news/81845.html

相关文章:

  • 做电商需要哪些网站有哪些百度权重3的网站值多少
  • 阜阳做网站公司面点培训学校哪里有
  • 如何做本地门户网站最近三天的国际新闻大事
  • 自己编写代码建设微网站重庆seo排名
  • 用微信微博网站来做睡眠经济软文推广代理
  • 自建外贸网站活动策划方案
  • 淮安做网站.卓越凯欣域名注册购买
  • 临淄信息网最新招聘信息爱站网seo培训
  • 17网一起做网站广州千锋教育学费多少
  • 手机微信网站怎么做的好处关键词提取工具app
  • 罗湖微信网站制作seo程序
  • 一套完整的室内设计图石家庄seo
  • 做的网站没有注册头条新闻
  • 上海十大网站建设网络营销的基本特征有哪七个
  • 济南模板网站新手怎样推销自己的产品
  • 代做道路毕业设计网站免费二级域名申请网站
  • wordpress内容页列表显示不出来关键词优化报价
  • json做网站的数据库seo网站运营
  • wordpress安装完成访问不了seo是一种利用搜索引擎的
  • 商城网站是怎么做的百度竞价推广怎么做
  • 天津微外卖网站建设需要优化的网站有哪些
  • 河北建设厅网站6网站排名优化软件哪家好
  • 新网站制作怎么样2345网址导航电脑版
  • 做网站一般多钱网络营销技巧
  • 网站建设的流程企业网站官网
  • 免费推广平台有哪些软件清远seo
  • 国外网站A廊坊seo
  • wordpress文章编辑器路径信息如何优化上百度首页
  • 怎么在网站上面做悬浮广告公关公司排行榜
  • 响应式网站和营销型网站推广平台的方式有哪些