css数字字体反爬的解决方案

css数字字体反爬的解决方案

方案

使用Tesseract-OCR识别
步骤
  1. 使用selenium请求页面
  2. 定位到需要识别的元素
  3. 对元素进行截图
  4. 使用tesseract-ocr进行识别
优点
  • 简单,有现成的工具
  • 适用范围广,可适用于汉字
缺点
  • 元素定位后的截图准确性的问题
  • ocr识别受干扰线影响较大
  • ocr识别的准确性问题
  • ocr识别及图片处理的性能问题
使用点阵模板文件映射
步骤
  1. 使用工具生成点阵模板xml文件,(css的demo及fonteditor在线工具,css的demo可以生成带有Unicode及对应的点阵列表;fonteditor在线工具用于填写unicode对应的值,该部分需要手工处理)
  2. 使用http请求获取网页数据(使用selenium会导致unicode不能识别)
  3. 使用正则表达式获取需要解析的unicode及woff/ttf文件
  4. 使用css的demo方法获取unicode对应的值

优点

  • 识别率十分高
  • 性能较高

缺点

  • 步骤较为复杂
  • 准确性比较依赖对比算法
  • 一般只用于数字字体识别

对比

  • 对于数字字体反爬来说,两个方案的准确率都很高,相对来说,方案2的准确性会比方案一的高
  • 方案一的稳定性受图片、ocr等影响,是不可控的,方案二只受对比算法影响,相对来说是可控的
  • 方案一使用截图的方式,某些情况下元素的坐标点与实际不相符,问题会比较棘手,方案二必须使用正则表达式的方式获取,也会导致获取到不需要的数据,但一般来说,unicode字符前肯定有统一的className
  • 方案二只能把页面当作字符串处理,会失去selenium处理页面的特性

demo地址

https://github.com/YeomanM/css.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值