爬虫与反爬虫系统的设计思路与策略

妇男主任 妇男主任     2022-12-08     487

关键词:

爬虫与反爬虫系统的设计思路与策略

常用的爬虫工具

爬虫工程师常用的渲染工具如下:

  1. Splash:异步的 JavaScript 渲染服务。
  2. Selenium:自动化测试框架。
  3. Puppeteer:一个通过 DevTools 协议控制 Chrome 的 Node js库。

01 封IP

网站运维人员在对日志进行分析时有时会发现同一时间段内某一个或某几个IP访问量特别大,由于爬虫是通过程序来自动化爬取页面信息的,因此其单位时间的请求量较大,且相邻请求时间间隔较为固定,这时就基本可以判断此类行为系爬虫所为,此时即可在服务器上对异常IP进行封锁。

02 封User-Agent

User-Agent是请求头域之一,服务器从User-Agent对应的值中是被客户端的使用信息。

User-Agent的角色就是客户端的身份标识。很多的爬虫请求头就是默认的一些很明显的爬虫头python-requests/2.18.4,诸如此类,当发现携带有这类headers的数据包,直接拒绝访问,返回403错误。

除了User-Agent之外,可利用的头域还有Host和Referer。这种验证请求头信息中特定头域的方式既可以有效地屏蔽长期无人维护的爬虫程序,也可以将一些爬虫初学者发出的网络请求拒之门外。

03 封Cookie

Cookie反爬虫指的是服务器通过校验请求头中的Cookie值来区分正常用户和爬虫程序的手段,服务器对每一个访问网页的人都会给其一个Cookie,有的扫描爬虫单纯为了爬取链接,并不会对Cookie进行处理和响应。

当某个Cookie访问超过某一个阀值时,就对其进行封禁,过一段时间再放出来。

也可以把Cookie和JavaScript结合起来实现反爬虫从而提高爬虫难度,这种手段被广泛应用在Web应用中。

04 javascript渲染

由 JavaScript 改变 HTML DOM 导致页面内容发生变化的现象称为动态渲染。

由于编程语言没有像浏览器一样内置JavaScript解释器和渲染引擎,所以动态渲染是天然的反爬虫手段。
网页开发者将重要信息放在网页中但不写入html标签中,而浏览器会自动渲染

05 验证码验证

当某一用户访问次数过多后,就自动让请求跳转到一个验证码页面,只有在输入正确的验证码之后才能继续访问网站。

06 ajax异步传输

访问网页的时候服务器将网页框架返回给客户端,在与客户端交互的过程中通过异步ajax技术传输数据包到客户端,呈现在网页上,爬虫直接抓取的话信息为空。

07 图片伪装

图片伪装指的是将带有文字的图片与正常文字混合在一起,以达到“鱼目混珠”的效果。
这种混淆方式并不会影响用户阅读,但是可以让爬虫程序无法获得“所见”的文字内容。

08 CSS偏移

这种方法是利用 CSS 样式将乱序的文字排版为人类正常阅读顺序的行为。
如果不细心观察,爬虫工程师很容易被爬取结果糊弄。这种混淆方法和图片伪装一样,并不会影响用户阅读。

例如:
HTML 文本中的文字:我的学号是 1308205,我在北京大学读书。
浏览器显示的文字:我的学号是 1380205,我在北京大学读书。
爬虫提取到的学号是 1308205,但用户在浏览器中看到的却是 1380205。

09 SVG映射

SVG 是用于描述二维矢量图形的一种图形格式。它基于 XML 描述图形,对图形进行放大或缩小操作都不会影响图形质量。

由于 SVG 中的图形代表的也是一个个文字,所以在使用时必须在后端或前端将真实的文字与对应的 SVG 图形进行映射和替换。

通过用矢量图形代替具体文字,不会影响用户正常阅读,但爬虫程序却无法像读取文字那样获得 SVG 图形中的内容。

除此之外还有Referer字段反爬、延时操作、网页iframe框架嵌套、csrf防护、限制每日下载量、DDOS防护、字体反爬虫等方式。

虽然爬虫措施有很多,但爬虫高手依旧可以绕过反爬虫机制,每一种方法都不是绝对安全的。因此对于有版权的内容和隐私数据,决不能为了“展现技术”而去肆意爬取。

Akamai给出的常见API攻击手段和防护建议:
常见Web攻击(SQL注入、CSS、命令行注入等):WAF规则
反序列化攻击:API白名单
应用逻辑攻击:参数验证
信息泄漏:HTTP请求方式白名单
逻辑DoS攻击:参数和深度限制
低速率攻击:低速率POST保护
7层DDoS攻击:速率控制

关于爬虫与反爬虫简略方案

像安全与黑客从来都是相辅相成一样。爬虫与反爬虫也是在双方程序员的斗智斗勇的过程不断发展和成长的。抓包抓包的目的:分析出协议请求使用的数据,请求接口,参数等等。常用的抓包分析工具:FiddlerCharlesSnifferWireshark具... 查看详情

爬虫与反爬虫与反反爬虫简介

一.基本概念简介  1.爬虫:      自动获取网站数据的程序,关键是批量的获取。  2.反爬虫:      使用技术手段防止爬虫程序的方法。  3.误伤:      反爬技术将普通用户识别为爬虫,如果误伤... 查看详情

爬虫与反爬(代码片段)

爬虫与反爬(1)基本的概念爬虫:自动获取网站数据的程序关键是定时,定量的,批量的获取反爬虫:使用技术手段防止爬虫程序的方法存在误伤,即反爬技术将普通用户识别为爬虫如果误伤高---效果再好也不能使用例子: 比... 查看详情

爬虫与反爬虫

...观段子手攻城狮大崔,如何高智商&高情商地完美碾压爬虫。。。关注携程技术中心微信公号ctriptech,可第一时间获知微分享信息~你被爬虫侵扰过么?当你看到“爬虫”两个字的时候,是不是已经有点血脉贲张的感觉了?千万... 查看详情

常见的一些反爬虫策略(下篇)-java网络爬虫系统性学习与实战系列(10)

常见的一些反爬虫策略(下篇)-Java网络爬虫系统性学习与实战系列(10)文章目录联系方式反爬虫策略文本混淆SVG映射CSS文字偏移图片混淆伪装字体反爬Referer字段反爬数据分段加载权限控制反爬加密反爬总结系列文章地址:Java网... 查看详情

常见的一些反爬虫策略(下篇)-java网络爬虫系统性学习与实战系列(10)

常见的一些反爬虫策略(下篇)-Java网络爬虫系统性学习与实战系列(10)文章目录联系方式反爬虫策略文本混淆SVG映射CSS文字偏移图片混淆伪装字体反爬Referer字段反爬数据分段加载权限控制反爬加密反爬总结系列文章地址:Java网... 查看详情

常见的一些反爬虫策略(上篇)-java网络爬虫系统性学习与实战系列

常见的一些反爬虫策略(上篇)-Java网络爬虫系统性学习与实战系列(9)文章目录联系方式概述反爬虫策略通过User-Agent校验反爬(附上网上最全User-Agent爬虫名单)网上最全User-Agent爬虫名单设置访问频率限制IP限制Cookie限制Referer通... 查看详情

爬虫与反爬虫技术简介(代码片段)

互联网的大数据时代的来临,网络爬虫也成了互联网中一个重要行业,它是一种自动获取网页数据信息的爬虫程序,是网站搜索引擎的重要组成部分。通过爬虫,可以获取自己想要的相关数据信息,让爬虫协... 查看详情

常见的一些反爬虫策略(上篇)-java网络爬虫系统性学习与实战系列

常见的一些反爬虫策略(上篇)-Java网络爬虫系统性学习与实战系列(9)文章目录联系方式概述反爬虫策略通过User-Agent校验反爬(附上网上最全User-Agent爬虫名单)网上最全User-Agent爬虫名单设置访问频率限制IP限制Cookie限制Referer通... 查看详情

爬虫与反爬虫

爬虫与反爬爬虫:自动获取网站数据的程序,关键是批量的获取。反爬虫:使用技术手段防止爬虫程序的方法误伤:反爬技术将普通用户识别为爬虫,从而限制其访问,如果误伤过高,反爬效果再好也不能使用(例如封ip,只会... 查看详情

爬虫与反爬虫的较量-图片反爬(代码片段)

前言在去年6月吧,刚转行做爬虫的时候,经常拿图片网还有小说网练手,无意中发现一个壁纸网站叫做娟娟壁纸网,有好多高清壁纸(这不是广告,哈哈)当时是写了全站爬取的代码。以为自己大工告成的时候,结果刚运行,... 查看详情

常见的一些反爬虫策略破解方式-java网络爬虫系统性学习与实战系列(11)

常见的一些反爬虫策略破解方式-Java网络爬虫系统性学习与实战系列(11)文章目录联系方式概述通过User-Agent校验反爬最全User-Agent设置访问频率限制IP限制Cookie限制Referer通过蜜罐资源反爬动态变换网页结构基于用户行为反爬虫通... 查看详情

常见的一些反爬虫策略破解方式-java网络爬虫系统性学习与实战系列(11)

常见的一些反爬虫策略破解方式-Java网络爬虫系统性学习与实战系列(11)文章目录联系方式概述通过User-Agent校验反爬最全User-Agent设置访问频率限制IP限制Cookie限制Referer通过蜜罐资源反爬动态变换网页结构基于用户行为反爬虫通... 查看详情

爬虫抓取技术

...现好内容并能持续不断的抓取是一项不简单的工作。反反爬虫爬虫的固定套路也就那么多,各种网站爬取策略的不同就在于网站的反爬虫机制不同,因此多作试验,摸清网站的反爬机制,是大规模爬虫的先行工作。爬虫与反爬虫... 查看详情

什么是爬虫-java网络爬虫系统性学习与实战

什么是爬虫-Java网络爬虫系统性学习与实战(2)文章目录我的简单理解维基百科的定义爬虫策略爬虫核心点爬虫的要素联系方式Java网络爬虫系统性学习与实战系列上一篇文章:纲要-Java网络爬虫系统性学习与实战(1)我的简单... 查看详情

基于web的爬虫系统设计与实现(代码片段)

全套资料下载地址:https://download.csdn.net/download/sheziqiong/85585280全套资料下载地址:https://download.csdn.net/download/sheziqiong/85585280目录1绪论11.1选题背景及意义11.1.1选题背景11.1.2目的及意义11.2国内外发展现状21.2.1爬虫技术概述 查看详情

python爬取知乎与我所理解的爬虫与反爬虫

参考技术A关于知乎验证码登陆的问题,用到了Python上一个重要的图片处理库PIL,如果不行,就把图片存到本地,手动输入。通过对知乎登陆是的抓包,可以发现登陆知乎,需要post三个参数,一个是账号,一个是密码,一个是xrsf... 查看详情

基于java爬虫的就业大数据系统设计与实现.rar(含论文+程序毕业设计)

...可以访问:https://www.bilibili.com/video/BV1S3411C7zo/基于java爬虫的就业大数据系统设计与实现1摘要11.1课题选题背景41.2课题研究的意义42.1功能需求分析42.2系统性能分析53.1系统工作流程图53.2数据结构设计73.3系统各功能流程图7(... 查看详情