什么是防采集

就是我们想利用爬虫工具采集某个网站的数据(前提当然是公开合法数据),但网站不想给你采集而设置的技术阻挡措施。

常见的防止采集方案

利用输入验证码框验证,在采集某些网站过程中,要求你输入验证码,否则就卡住进行不下去。这是网站最常用且最基础的防采措施之一,它要求你必须你手动输入验证码里的数字和字母,才能继续看到更多信息或者进行下一步,以此来判断你是机器人还是真人。

滑动图片进行拼图验证,它要求你必须滑动拼图到它指定的位置,才能通过验证进行下一步操作。

登录验证,这类网站通常需要登录才能看到更丰富的信息,否则只会展现非常有限的内容。

数据加密防采集,我们在网页上看到的内容是真实的,但我们打开源代码看,这段文字被已经被加密分离,这样当我们用爬虫工具进行数据采集时,所采集下来的数据就是各种乱码,法整合成一段完整的文字。

反馈虚假数据,这种防止采集的方案是把虚假的数据传递给爬虫工具,从而防止数据被采集。

禁止访问网页,主要还是看网站的防采机制设计,如果触发了,通常的结果就是全面封锁和禁止。比如封你的账号、封你的IP地址。一旦被封锁,网站会自动给你错误页面或无法让你正常浏览。

如何利用HTML和自定义字体(web-font)来实现数据防采集

web-font是CSS3中的一种标记 @font-face,在@font-face声明里,你可以声明一种字体,指定这种字体字体库文件从网络某个地址下载或直接引用本地的自定义字体文件。例如在css中做如下声明:

@font-face {

font-family: "icomoon";

src: url("fonts/icomoon.woff") format("woff"),

url("fonts/icomoon.ttf") format("truetype"),

url("fonts/icomoon.eot") format("embedded-opentype"),

url("fonts/icomoon.svg") format("svg");

}

复制代码

这样就成功引入了icomoon这个自定义字体。

防采集原理:

使用web-font可以从网络加载字体,因此我们可以自己创建一套字体,设置自定义的字符映射关系表。

例如设置1f345是映射字符9,1f371是映射字符2,以此类推。

当需要显示字符9时,网页的源码只会是1f345,被采集的也只会是1f345,并不是9,使采集者采集不到正确的数据。而对于正常访问的用户则没有影响。对于中文的防采集不适合使用web-font这种方法,因为中文的字体库太大。而对于数字,英文则适合使用此方法实现防采集。

实例流程:

1.创建指定字符的自定义字体

首先选择一款字体(免费且不受版权影响的字体),下载好字体可以去FONTEK这个网站快捷转格式上传ttf文件,点击下方的生成,将字体文件转为svg格式。

2.选择需要使用的字符及设置字体映射关系

打开网址:icomoon,选择左上角“import icons”上传刚刚生成的svg字体,然后选择要加密的字符进行加密,这里我选择0-9数字进行加密,选择完成后点击右下角Generate Font按钮。

把名字也按映射关系修改,设置映射关系后,点击右下角download下载字体。然后将字体文件放到项目中,并在css中声明引入的字体。

@font-face {

font-family: "icomoon";

src: url("fonts/icomoon.woff") format("woff"),

url("fonts/icomoon.ttf") format("truetype"),

url("fonts/icomoon.eot") format("embedded-opentype"),

url("fonts/icomoon.svg") format("svg");

}

复制代码

然后需要定义一个css的class,font-family使用这个web-font

.number{

font-family: icomoon;

}

复制代码

然后根据之前修改的映射表在HTML中使用各自数字对应的映射如下

html怎么防止修改数据,HTML防数据采集相关推荐

  1. 景联文科技提供一站式智能安防数据采集标注解决方案

    1.智能安防近期发展 智能安防是人工智能与信息技术结合的关键领域,对于城市与民生发展有着重要意义.通过生物识别.行为监测等技术手段,广泛应用于城市道路监控.车辆人流监测.公共安全防范等领域. 随着中国 ...

  2. mysql并发更新数据,多用户并发修改数据解决方案。

    mysql并发更新数据,多用户并发修改数据解决方案. 在系统中,有一些如余额.资产.积分的数据,是要保证数据一致性的.如,一个人使用两个设备同时进行消费操作,如何保证数据一致性的问题. 我们一起来思考 ...

  3. 【jdbc】兴唐第三十一节课之修改数据和查询数据(使用自己写的DBUtil)

    一.修改数据 方法一 代码实现: public static void opDBByNormal() {DruidDataSource dds = new DruidDataSource(); dds ...

  4. fiddler使用技巧进阶,如何抓包修改数据?——AutoResponder重定向

    " 介绍Fiddler的AutoResponder重定向功能." Fiddler功能十分强大,既能抓取报文,也能构造报文,本文继续介绍fiddler的功能,这次的功能与构造报文相关 ...

  5. pb 修改数据窗口种指定字段位置_如何在PB数据窗口中修改数据---设置数据窗口的更新属性...

    如何在 PB 数据窗口中修改数据 --- 设置数据窗口的更新属性 数据窗口对象非常强大的原因之一就是能够很容易地修改数据库.当用户修 改了数据窗口中的数据,插入了新的数据行或者删除了数据行以后,只要调 ...

  6. 分享:bbed修改数据文件头推进scn与其他数据文件相同

    2019独角兽企业重金招聘Python工程师标准>>> 场景简介: 物理copy表空间数据文件,数据库发生完全检查点,删除该表空间下的数据文件,使该表空间数据文件头的scn与其他数据 ...

  7. mysql所有的编码_MySQL 批量修改数据表编码及字符集

    当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改.以下备注批量修改方案( 以修改为 utf8mb4_bin 为例,注意将 db_name 换为真实的数据库名 ). 1. ...

  8. php pdo 方法,PHP使用PDO修改数据的方法

    PHP使用PDO修改数据的方法 发布时间:2020-06-09 11:31:36 来源:亿速云 阅读:263 作者:Leah 这篇文章给大家分享的是PHP使用PDO修改数据的方法.小编觉得挺实用的,因 ...

  9. Fast RCNN 训练自己数据集 (2修改数据读取接口)

    Fast RCNN 训练自己数据集 (2修改数据读取接口) Fast RCNN训练自己的数据集 (2修改读写接口) 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.co ...

最新文章

  1. win7安装redis
  2. ThinkPHP学习笔记 事务处理
  3. 关于Android 8.0java.lang.SecurityException: Permission Denial错误的解决方法
  4. ios 横向滚轮效果_iOS 可以纵向横向滑动的表格实现
  5. 一步设置Intellij IDEA 热部署处理方法
  6. php字符串替换多余逗号_PHP字符过滤函数去除字符串最后一个逗号(rtrim)_php技巧...
  7. matlab 工具函数(一) —— 添加指定 SNR 的噪声
  8. mysql 无法退出sql命令行编辑
  9. 5.深入分布式缓存:从原理到实践 --- 从Memcached开始了解集中式缓存
  10. Listary Pro - 能极大幅度提高你 Windows 文件浏览与搜索速度效率的「超级神器」...
  11. (转) QImage总结
  12. html布局源代码实例,网页实际案例-从设计到代码实现全过程(一)
  13. 用CDR(coreldraw)怎么把图片转为矢量图
  14. Workbook.SaveAs方法
  15. 100份开工礼送粉丝,体验嵌入式高级感!
  16. 弘辽科技:淘宝直通车推广无展现?该从何入手?
  17. RT-thread实现USB虚拟U盘 模拟读卡器读写sd0
  18. 前端食堂技术周刊第 82 期:Vue3.3、Google I/O、CSS In 2023、Remix Conf 2023、Rollup 中文文档、React 中文文档
  19. IP网络主动测评系统——X-Vision
  20. u-boot-2012.04.01移植到TQ2440

热门文章

  1. 324. Wiggle Sort II | 324. 摆动排序 II(降序穿插)
  2. Redis实战(六):Redis的集群:AKF,主从复制的概念引入,CAP,Sentinel 哨兵
  3. 【REST】REST是什么
  4. C语言 数据结构 二叉树实现、二叉树的三种递归遍历
  5. Spring Boot注解
  6. 数据仓库与联机分析处理笔记
  7. Leet Code OJ 171. Excel Sheet Column Number [Difficulty: Easy]
  8. erp系统方案书_一次ERP选型实施失败的血泪教训!
  9. k8s安装部署步骤_30分钟无坑部署K8S单Master集群
  10. 如何解决微服务架构中的雪崩问题?