常见爬虫/BOT对抗技术介绍(一)
爬虫,作为数据获取的有效手段,在互联网发展中不断演进。本文将介绍现代爬虫/BOT对抗技术,如有疏漏,欢迎指正。外汇平台源码建设
一、反爬虫/BOT技术
1.1 Robots.txt
Robots.txt文件,位于域名根目录,如example.com/robots.txt。它指引爬虫遵守的规则,告知哪些内容可抓取,哪些不可。图识识别源码虽然它并不算反爬虫技术,但对搜索引擎爬虫有约束作用。
1.2 IP层/网络层
网络层关注IP地址,来源地址难以伪造,成为反爬策略核心。封杀IP/IP段是网站执行的严厉惩罚。国内NAT技术导致大量用户共用IP,使得IP封杀策略执行时需谨慎,以避免误杀正常用户。
1.3 HTTP层
HTTP层包含多个有趣HTTP头,如X-Forwarded-For、Referer、分时obv背离源码User-Agent。这些头在制定反爬策略时至关重要。
1.3.1 X-Forwarded-For
X-Forwarded-For头用于识别客户端原始IP,由普通HTTP代理添加,新手程序员误用可能导致爬虫利用。
1.3.2 Referer
Referer头指示用户上一页面的URL,%以上流量应携带此头。不携带Referer头的请求,可能导致触发要求输入验证码策略。
1.3.3 User-Agent
User-Agent头指示浏览器版本等信息。伪装User-Agent策略已在其他文章中讨论,本文不再赘述。龙头填权指标源码
1.4 应用层/浏览器层
应用层反爬虫/BOT技术主要包括验证码、JS渲染、接口加密、数据混淆、行为分析、存储跟踪、navigator对象、假链陷阱、浏览器指纹、JS引擎指纹。
1.4.1 验证码
验证码是广泛应用的核心爬虫对抗技术,但随着机器学习、电脑源码编程教程神经网络的发展,简单验证码接近无效。验证码存在人工打码平台,单一验证码难以有效处理爬虫问题。
1.4.2 JS渲染
Ajax技术使爬虫从静态爬虫转变为动态爬虫,网站构建前端需解析Ajax接口返回的数据,增加了爬取难度。
1.4.3 接口加密与JS混淆
通过额外的Token参数加密ajax接口,前端JS混淆,增加破解难度,但不是绝对防御。
1.4.4 数据混淆
返回错误数据代替正确数据,隐蔽且能对爬虫造成干扰,非常有效。
1.4.5 行为分析
基于规则或机器学习分析用户操作轨迹,判断爬虫,与反爬手段结合,有效干扰爬虫。
1.4.6 存储跟踪与flash Storage
利用Cookies和Flash跟踪用户行为轨迹,识别伪装浏览器,以避免误杀正常用户。
1.4.7 navigator对象
浏览器中的navigator对象提供操作系统、浏览器信息,与Useragent、flash分析判断是否为伪装浏览器。
1.4.8 假链陷阱
构建不可见标签,爬虫跟踪链接时,会触发反爬策略。
1.4.9 浏览器指纹
不同浏览器、操作系统等,使得canvas操作产生不同结果,用于跟踪浏览器,但误杀率较高。
1.4. JS引擎指纹
不同JS引擎执行相同语句时,结果不同,通过比较JS引擎动作和UserAgent判断是否为伪造浏览器。
1.4. 前端逆向
分析HTML、JS源码获取数据,避免使用浏览器模拟。
1.4. 浏览器模拟
利用真实浏览器请求、执行页面脚本,对抗动态渲染和接口加密,常用框架有Selenium WebDriver、PhantomJS。
1.4. 字符识别
高级OCR技术,基于神经网络识别简单验证码。
1.4. 行为模拟
有意留下Cookie,请求无关接口,模拟用户行为,对抗行为分析。
1.4. 打码平台
组织人员识别高难度验证码,提供给爬虫。
1.4. JS Hook
替换JS上下文对象,避免被跟踪,主要在CEF二次开发中实现。
二、IP层反反爬虫技术
2.1 代理服务器
代理服务器通过更改源IP,使用HTTP或SOCKS代理,实现IP地址变换,是爬虫客户端常用方法。
2.2.1 HTTP代理
HTTP代理的普通代理和高匿代理分别处理XFF头部,服务端难以判断XFF头的真假。
2.2.2 Socks代理
Socks5代理常见,通过TCP连接作为隧道进行代理。
三、并发PPP连接技术
3.1 PPP协议栈简单介绍
3.2 PPP连接和ADSL的关系
3.3 城域网技术简介
3.4 并发PPP连接方案的适用范围
3.5 国内并发PPP连接服务提供商
四、Linux路由
4.1 Linux基础路由简介
4.2 Linux高级路由简介
2024-11-30 17:54
2024-11-30 17:16
2024-11-30 16:53
2024-11-30 16:38
2024-11-30 15:52