文档详情

Python爬虫大数据采集与挖掘-微课视频版课件 -第二版-10 反爬虫技术与爬虫对抗.ppt

发布:2025-04-15约2.21千字共20页下载文档
文本预览下载声明

**Python爬虫大数据采集与挖掘(10)

--反爬虫技术与爬虫对抗《Python爬虫大数据采集与挖掘》第二版.微课视频版(清华大学出版社,2025)提纲概述反爬虫技术爬虫对抗技术不友好爬虫导致的问题Web服务器性能下降DDOS攻击不友好爬虫产生的原因不遵守robots协议爬行策略的问题大量线程、高并发访问爬虫与反爬虫之间的斗争爬虫使用各种技巧逃避Web服务器的检测Web服务器采取各种方法检测爬虫,并阻止爬虫访问相互克制、相互促进提纲概述反爬虫技术爬虫对抗技术反爬虫主要的工作包括两个方面不友好爬虫的识别爬虫行为的阻止识别爬虫主要任务是区分不友好爬取行为与正常浏览行为的差异。阻止爬虫则是阻止恶意的爬取,同时能够在识别错误时为正常用户提供一个放行的通道。爬虫检测技术友好爬虫遵守robots爬取频率和策略比较合理给服务器的压力小不友好爬虫不遵守robots大量并发访问给服务器带来持续压力或瞬间压力?正常用户浏览行为爬虫行为客户端IP地址同一个用户的IP一般不会变化,同一时间段内不同用户之间的IP区别比较大,IP地理分布和请求量分布也比较随机。可能通过单一IP或者代理IP访问,简单的爬虫往往是通过单一IP进行访问,但也可能不断切换使用不同的IP地址。HTTP请求Headers数据的完整性使用流行的浏览器或者站点的客户端,Headers数据由浏览器自动生成并填充,主要包括User-Agent、允许的字符集以及本地文件的过期时间等。可能会使用无Header浏览器,或者模拟浏览器进行访问,访问请求存在无Headers数据和数据内容不完整的情况。由机器生成的Header往往内容相对固定,或只是简单替换部分参数。Headers.referer数据合法性HTTP请求的Headers.referer是本站点内的页面或者友好网站,例如:搜索引擎。HTTP请求的Headers.referer可能不存在或随意填写的,不在合法范围内。请求中特定的Cookies数据的合法性每次访问使用相同的浏览器,也自然会调用相同的Cookies。不一定会使用Cookies。请求时间间隔规律性人需要花费一定时间浏览页面内容,之后后跳转至下一页面,或者同时打开少量的页面进行预缓存。采集页面后提取其中的超连接,即进行下一步采集,每次访问间隔相对固定(也有爬虫采用增加随机延时的方式模拟自然人访问)。能否通过验证码能够在页面出现异常显示时及时进行干预,例如输入验证码或者点击指定的按钮等。难于处理复杂的验证码或验证操作。页面资源加载特征加载页面时会加载相关的所有JS/CSS等脚本文件和图片等静态资源,这个过程是浏览器自动完成的。大部分会只获取HTML文件,不一定进行页面中的图片等资源的二次请求,但使用模拟浏览器的爬虫会加载JS/CSS。页面JS执行特征会访问页面的所有资源,即使是页面上对自然人是不可见的。一般只会执行页面可见的JS,访问页面上可见的内容。爬虫检测技术通过IP与访问间隔等请求模式的识别通过Header内容识别通过cookies信息识别通过验证码识别通过对客户端是否支持js的分析来识别通过是否遵循Robot协议来识别是否友好爬虫页面资源是否加载高级爬虫检测技术使用分类器等高级技术,将这些特征综合起来,同时使用多种特征来刻画一个HTTP请求人工标注样本使用SVM、KNN以及深度学习来训练分类器。爬虫阻断技术1. 通过非200/304的ResponseStatus禁止访问2. 封禁IP(或IP段)的访问权限3. 使用验证码或关键信息图片化增加采集难度4. 使用页面异步加载增加采集难度5. 动态调整页面结构6. 设置蜜罐干扰爬虫行为提纲概述反爬虫技术爬虫对抗技术1. 针对IP与访问间隔限制不使用真实IP,爬虫使用代理服务器或者云主机等方式进行IP的切换在请求中使用代理:proxies={

http::8888,

https::8484,}

worker_session=requests.Session()

r=worker_session.get(url,proxies=proxies,cookies=_cookies,verify=False,stream=True,headers=headers,timeout=5000)2. 针对Header的内容验证使用Selenium或其他内嵌浏览器进行浏览器的访问和模拟,同时构造合理的Headers信息,主要包括User-Agent和Hosts信息。使用Selenium则会调用浏览器

显示全部
相似文档