防止爬虫爬取的机制(如何防止爬虫爬取数据)

优质文章,及时送达

kk-anti-reptile 是适用于基于 spring-boot 开发的分布式系统的反爬虫组件。

系统要求

基于 spring-boot 开发(spring-boot1.x, spring-boot2.x均可)

需要使用 redis

工作流程

kk-anti-reptile 使用基于 Servlet 规范的的 Filter 对请求进行过滤,在其内部通过 spring-boot 的扩展点机制,实例化一个 Filter,并注入到 Spring 容器 FilterRegistrationBean 中,通过 Spring 注入到 Servlet 容器中,从而实现对请求的过滤。

在 kk-anti-reptile 的过滤 Filter 内部,又通过责任链模式,将各种不同的过滤规则织入,并提供抽象接口,可由调用方进行规则扩展。

Filter 调用则链进行请求过滤,如过滤不通过,则拦截请求,返回状态码 509,并输出验证码输入页面,输出验证码正确后,调用过滤规则链对规则进行重置。

目前规则链中有如下两个规则

ip-rule

ip-rule 通过时间窗口统计当前时间窗口内请求数,小于规定的最大请求数则可通过,否则不通过。时间窗口、最大请求数、ip 白名单等均可配置。

ua-rule

ua-rule 通过判断请求携带的 User-Agent,得到操作系统、设备信息、浏览器信息等,可配置各种维度对请求进行过滤。

命中规则后

命中爬虫和防盗刷规则后,会阻断请求,并生成接除阻断的验证码,验证码有多种组合方式,如果客户端可以正确输入验证码,则可以继续访问

防止爬虫爬取的机制(如何防止爬虫爬取数据)

验证码有中文、英文字母+数字、简单算术三种形式,每种形式又有静态图片和 GIF 动图两种图片格式,即目前共有如下六种,所有类型的验证码会随机出现,目前技术手段识别难度极高,可有效阻止防止爬虫大规模爬取数据

防止爬虫爬取的机制(如何防止爬虫爬取数据)

接入使用

后端接入非常简单,只需要引用 kk-anti-reptile 的 maven 依赖,并配置启用 kk-anti-reptile 即可加入 maven 依赖

<dependency>

<groupId>cn.keking.projectgroupId>

<artifactId>kk-anti-reptileartifactId>

<version>1.0.0-SNAPSHOTversion>

dependency>

配置启用 kk-anti-reptile

anti.reptile.manager.enabled=true

前端需要在统一发送请求的 ajax 处加入拦截,拦截到请求返回状态码 509 后弹出一个新页面,并把响应内容转出到页面中,然后向页面中传入后端接口 baseUrl 参数即可,以使用 axios 请求为例:

import axios from ‘axios’;

import {baseUrl} from ‘./config’;

axios.interceptors.response.use(

data => {

return data;

},

error => {

if (error.response.status === 509) {

let html = error.response.data;

let verifyWindow = window.open(\”\”,\”_blank\”,\”height=400,width=560\”);

verifyWindow.document.write(html);

verifyWindow.document.getElementById(\”baseUrl\”).value = baseUrl;

}

}

);

export default axios;

注意

apollo-client 需启用 bootstrap

使用 apollo 配置中心的用户,由于组件内部用到 @ConditionalOnProperty,要在 application.properties/bootstrap.properties 中加入如下样例配置,(apollo-client 需要 0.10.0 及以上版本)详见 apollo bootstrap 说明

apollo.bootstrap.enabled = true

需要有 Redisson

连接如果项目中有用到 Redisson,kk-anti-reptile 会自动获取 RedissonClient 实例对象; 如果没用到,需要在配置文件加入如下 Redisson 连接相关配置:

spring.redisson.address=redis://192.168.1.204:6379

spring.redisson.password=xxx

配置一览表

在 spring-boot 中,所有配置在配置文件都会有自动提示和说明,如下图:

防止爬虫爬取的机制(如何防止爬虫爬取数据)

所有配置都以 anti.reptile.manager 为前缀,如下为所有配置项及说明:

防止爬虫爬取的机制(如何防止爬虫爬取数据)

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。

转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]

本文标题:反爬虫防盗刷 Spring Boot 组件 kk-anti-reptile 初版发布

本文地址:https://www.oschina.net/news/112586/kk-anti-reptile-released

-END-

如果看到这里,说明你喜欢这篇文章,请 。同时 标星(置顶)本公众号可以第一时间接受到博文推送。

防止爬虫爬取的机制(如何防止爬虫爬取数据)

最近整理一份面试资料《Java技术栈学习手册》,覆盖了Java技术、面试题精选、Spring全家桶、Nginx、SSM、微服务、数据库、数据结构、架构等等。

秒鲨号所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈!本站将在三个工作日内改正。
(0)

大家都在看

  • 濛言濛语为什么会火出圈(王濛为什么会这么受广大网友欢迎)

    在2022年的冬奥会中,不仅仅是冰墩墩和雪容融出圈了,还有短道速滑国家队主教练王濛。她的解说收到了许多观众的喜爱,尤其是她解说的话语被大家成为“濛言濛语”。为什么濛言濛语会这么火这…

    2022年2月13日 投稿
  • 炸翻天弹头捕鱼号回收币商 曙光英雄操作难的英雄50位

    大家好,好,我是您的好朋友皮皮金,谢谢您的支持。随着科技的进步,特别是无线网络的发展,人们的生活水平稳步提高。智能手机的普及,让MOBA手游迎来了春天。今天,让我们来谈谈新的MOBA手机游戏,黎明英雄。曙光英雄和传统的MOBA手机游戏一样,也分为五个位置,现在有50个英雄。那么在这50个英雄中,谁的操作难度最高呢?关羽两星,赵云三星,她五颗星!

    2022年6月27日 投稿
  • 澳门大学分数线(澳门大学2020分数线)

    每年6月,相信各位考生和家长都非常关心能考到什么样的学校?读什么专业有前景? 除了内地大学,香港、澳门的高校也备受关注,接受高考成绩申请,且实行独立招生,不影响考生报志愿,也是比较…

    2021年6月23日 投稿
  • 精仿劳力士手表要多少钱?买表指南告诉你

    我不会花言巧语,一向实事求是。在我这里我可以确保物超所值,这个行业,十多年经验,诚信与你 品质保证 关于精仿劳力士手表要多少钱?精仿劳力士手表一般并不是很贵的。价格1700元到35…

    2022年5月26日 商业资讯
  • 国产好手机有哪些(公认最好的国产手机)

    进入到智能手机时代以来,一直在“山寨”“劣质”标签里求存的中国国产手机迎来了证明自己的机会。这几年智能手机行业的飞速发展,也是中国智能手机厂商飞速发展的黄金时期,越来越多优秀的国产…

    2022年3月3日 投稿
  • 录歌用什么软件好(一键修音的唱歌软件)

    现在,其实很多音乐软件都朝着多功能的方向发展了,音乐录音软件也一样,只讲一些主要的和比较专业的。 录音室 着重于录音混音的软件,我们都归类在这个类别里面来介绍,首先登场的是录音棚里…

    2022年3月4日 投稿
  • 韩娱小说排行榜(韩娱小说排行榜 1080P)

    1.《韩娱之天王》——作者:呓语痴人 非穿越架空韩娱文,韩娱文中的精品。主角金圣元是个非穿越的纯种韩国人,遭挫折后被金手指点化,从此踏上娱乐界天王(毒瘤)的征程。以综艺、歌手生涯为…

    2022年6月7日 投稿
  • 装机必备软件有哪些(十大装机必备软件)

    相信大家的电脑上都安装了不少软件,经常看到很多朋友在安装某个软件时,捆绑了一大堆其他软件,而且还可能存在病毒。 下面这10款电脑装机必备软件,无广告无捆绑,功能强大,绝对刷新你的认…

    2022年1月5日 投稿
  • 如何清理手机垃圾(如何清理手机垃圾才干净)

    不管是什么品牌的手机,使用时间久了,就有可能出现内存不够用的情况,尤其是那些比较老的手机,存储内存才16G,甚至只有8G大小,稍微安装一些软件,存储内存就有可能爆满。这个时候,我们…

    2022年6月12日 投稿
  • 设计图制作软件免费都有哪些(可以自己设计的免费app)

    我打赌,你可能从来没听说过,你每天都在用的某宝,其实有这么多的设计工具。 接下来,我就给大家介绍一下,上面这4个设计神器,简直不要太好用! 01 顽兔抠图 相信大家在做PPT的时候…

    2022年3月6日 投稿