Python爬虫大数据采集与挖掘-微课视频版课件 -第二版-10 反爬虫技术与爬虫对抗_第1页
Python爬虫大数据采集与挖掘-微课视频版课件 -第二版-10 反爬虫技术与爬虫对抗_第2页
Python爬虫大数据采集与挖掘-微课视频版课件 -第二版-10 反爬虫技术与爬虫对抗_第3页
Python爬虫大数据采集与挖掘-微课视频版课件 -第二版-10 反爬虫技术与爬虫对抗_第4页
Python爬虫大数据采集与挖掘-微课视频版课件 -第二版-10 反爬虫技术与爬虫对抗_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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则会调用浏览器。也可以根据规则自行组装Headers信息,在爬虫实现中尽可能完整地填写Headers的各个属性值。3. 针对Cookies验证使用不同的线程来记录访问的信息,如Python中的requests.session,为每个线程保存Cookies,每次请求的Header均附上正确的Cookies,或者按照站点要求正确使用Cookies内的数据(例如使用cookies内的指定密钥进行加密校验)。4. 针对验证码验证码形式当前,Web网站推送的验证码大多分为四类:计算验证码、滑块验证码、识图验证码、语音验证码。目前主流的验证码破解主要有两种:机器图像识别与人工打码,此外还可以使用浏览器插件绕过验证码的类似技术。5. 针对页面异步加载与客户端JS支持判断可以使用Selenium或PhantomJS进行JS解析,并执行页面内容获取所需要的正确的JS方法/请求。当然也可以使用真实的浏览器作为采集工具的基础,例如自定义封装一个自定义的firefox浏览器,以插件的形式实现采集工具。6. 针对动态调整页面结构对于这种方式的反爬虫技术,最好的办法是首先采集页面,而后根据采集到的页面再进行分类处理,在爬虫程序中异常的捕获更是不能少。如果一个页面的html毫无规则,那么其的显示也将是一个问题,因此对于动态调整结构的页面可以采用Selenium加载浏览器,按照信息的区域进行采集的方式进行尝试采集;此外还可以尝试使用正则表达式,将结构中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论