网页视频抓取工具 知乎(一下反爬虫策略及其应对方法,你值得拥有!!)

优采云 发布时间: 2022-01-05 18:05

  网页视频抓取工具 知乎(一下反爬虫策略及其应对方法,你值得拥有!!)

  随着大数据的普及,互联网上各种网络爬虫/爬虫工具蜂拥而至。因此,网络数据成为大家竞争和掠夺的资源,但网站运营商必须开始保护自己的数据资源。避免竞争对手获取您自己的数据,防止更大的业务损失。下面总结一下反爬虫策略及其对策。

  来看看我用的代理IP。质量非常好。如果需要,您可以对其进行测试:

  专属资源适合长期爬虫业务,IP并发量大,API调用频率不限,海量抽取,产品安全稳定,支持http、https、sk5三种协议,适合爬虫(舆论、e-电商、短视频)、抢购、seo等多种业务

  个人电脑:

  移动

  一、什么是爬虫和反爬虫

  一张图说明一切:

  

  爬虫和反爬虫是致命的对手,无论爬虫多么强大,都可以通过复杂的反爬虫机制被发现。同样,无论爬行动物多么强大

  系统多么细致,先进的网络爬虫都能破解。胜负的关键取决于双方投入了多少资源。为了更好的了解爬虫和反

  爬虫机制,下面有一些定义:

  爬虫:利用任何技术手段批量获取网站信息。关键是批量大小。

  反爬虫:使用任何技术手段防止他人批量获取自己的网站信息。关键也是批次。

  误伤:在反爬虫过程中,普通用户被误认为是爬虫。误伤率高的反爬虫策略再有效也无法使用。

  拦截:成功阻止爬虫访问。会有拦截率的概念。一般来说,反爬虫策略的拦截率越高,意外伤害的可能性就越大。所以有一个权衡。

  因此,我们可以知道爬虫最基本的特性之一就是批处理,反爬虫机制也是根据这个特性做出判断的,但是反爬虫

  仍然是权衡利弊的选择。它既要求低误伤率,又要求高拦截率。这也是它的漏洞。关于网站为什么以及如何制作

  确定反爬虫策略,可以看反爬虫经验总结。

  

  二、反爬虫方法及响应

  一般来说,网站从三个方面进行反爬虫:请求网站访问时的header、用户行为、目标网站目录和数据加载方式。向前

  两个方面可以说是反爬虫策略中最常见的,第三个是使用ajax(异步加载)来加载页面目录或内容。

  增加爬虫在形成对目标网站的访问后获取数据的难度。

  但是仅仅检查请求头或者做一些ip限制显然不能满足运营商对反垃圾邮件的要求,所以进一步的对策

  也有很多付出。最重要的大概是:Cookie限制、验证码反爬虫、Noscript。

  2.1 个通过 Headers 的反爬虫

  从用户请求的Headers反爬取是最常见的反爬取策略。由于普通用户通过浏览器访问网站,目标网络

  站点在收到请求时通常会检查Headers 中的User-Agent 字段。如果不是携带正常User-Agent信息的请求,则无法进行通信。

  通过请求。还有一部分网站为了防止盗链,也会校验请求头中的Referer字段。如果遇到这种反爬虫机制,可以

  为了直接给自己写的爬虫添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;此外,通过捕获请求

  包分析,修改Referer值到目标网站域名,可以很好的绕过。

  2.2 基于用户行为的反爬虫

  有些网站会通过用户行为来检测网站的访问者是否是爬虫。例如,同一个IP在短时间内多次访问同一个页面,或者同一个

  在短时间内对一个帐户执行多次相同的操作。大多数 网站 都是前一种情况。针对这种情况有两种策略:

  1)使用代理ip。比如可以写一个专门的脚本去抓取网上可用的代理ip,然后将抓取到的代理ip维护到代理池中进行爬取

  蠕虫使用,当然,其实不管抓到的ip是免费的还是付费的,平时的使用效果都是很一般的。如果您需要捕获高价值数据

  如果愿意,也可以考虑购买宽带adsl拨号VPS。如果ip被目标网站屏蔽了,再拨一下就行了。

  2) 降低请求频率。例如,每个时间段请求一次或多次请求后休眠一段时间。由于网站得到的ip是一个

  局域网的ip,该ip是区域内所有人共享的,所以间隔不需要特别长

  在第二种情况下,您可以在每次请求后以几秒钟的随机间隔发出下一个请求。对于有逻辑漏洞的网站,可以请求多个

  二、注销,重新登录,继续请求,绕过同一账号短时间内不能多次发出同一个请求的限制。如果有多个账户,

  切换使用,效果更佳。

  2.3 动态页面反爬虫

  以上情况大部分出现在静态页面上,但是对于动态网页,我们需要爬取的数据是通过ajax请求获取的,或者通过

  通过 JavaScript 生成。首先使用 Firebug 或 HttpFox 来分析网络请求。如果能找到ajax请求,也可以具体分析一下

  参数和响应的具体含义,我们可以使用上面的方法,直接用requests或者urllib2来模拟ajax请求,响应json

  执行分析以获得所需的数据。

  能够直接模拟ajax请求获取数据是很棒的,但是有的网站加密了ajax请求的所有参数。我们什么也做不了

  为您需要的数据构建一个请求。还有一些被严格保护的网站,除了对ajax参数进行加密外,还封装了一些基础功能,

  都是在调用自己的接口,接口参数都是加密的。

  遇到这样的网站,就不能用上面的方法了。使用selenium+phantomJS框架调用浏览器内核使用

  phantomJS 执行 js 来模拟人工操作并触发页面中的 js 脚本。从填表到点击按钮到滚动页面,一切都可以建模

  计划是,不管具体的请求和响应过程,只是完全模拟人们浏览页面获取数据的过程。使用这个框架几乎环绕

  大多数反爬虫,因为它不是冒充浏览器获取数据(上面提到的通过添加

  headers 是在一定程度上伪装成浏览器),它本身就是一个浏览器,phantomJS 是一个没有界面的浏览器,只有

  控制这个浏览器的不是人。

  

  2.4 Cookie 限制

  类似于Headers验证的反爬虫机制,当用户向目标网站发送请求时,请求数据会再次携带Cookie,网站会通过验证

  请求信息中是否有cookie,通过cookie的值判断请求是真实用户还是爬虫,第一次打开

  该网页将生成一个随机 cookie。如果再次打开网页时cookie不存在,您可以重新设置。第三次打开它,它仍然不存在。

  爬虫很可能正在工作。

  Cookie Check 和 Headers 的区别在于用户发送的 Headers 的内容格式是固定的,很容易被伪造。饼干不是。

  当然。原因是我们在分析浏览器请求网站访问的过程中分析的cookies,往往是通过相关的js等进程处理的。

  如果更改了域的cookie,如果直接手动修改爬虫携带的cookie来访问相应的网页,则携带的cookie已经是访问者。

  在询问域之后,而不是访问之前的域,是不可能成功模拟整个过程的。这种情况必然会导致爬虫访问页面

  失败。分析cookies,它可能携带大量随机hash字符串,或者不同时间戳的字符串,并且会根据每次访问进行更新。

  新域名的价值。对于这个限制,你必须在捕获和分析目标网站时先清除浏览器的cookies,然后在第一次访问

  在完成访问的过程中观察浏览器的请求细节(这个过程中通常会发生几次301/302跳转,每次跳转网站返回

  向浏览器返回不同的cookie,最后跳转请求成功)。抓包完成对请求细节的分析后,对爬虫进行建模

  规划好这个过渡过程,然后将cookie作为爬虫本身携带的cookie进行拦截,这样就可以绕过cookie的限制完成目标网站

  参观过。

  2.5 验证码限制

  这是一个相当古老但有效的反爬虫策略。早些时候,这种验证码可以通过OCR技术进行简单的图像识别。

  不要破解,但目前验证码的干扰线噪声太大,肉眼无法轻易识别。所以现在,由于 OCR

  在技​​术发展薄弱的情况下,验证码技术已经成为许多网站最有效的方法之一。

  除了识别问题,验证码还有一个值得注意的问题。许多网站现在都在使用第三方验证码服务。当用户点击

  打开目标网站的登录页面时,登录页面显示的验证码是从第三方(如阿里云)提供的链接中加载的。此时,我们正在模拟

  登录时,您需要多一步从网页提供的第三方链接中获取验证码,而这一步往往意味着一个陷阱。由阿里云提供

  以验证码服务为例,登录页面的源码中会显示阿里云提供的第三方链接,但是匹配到这个链接就可以抓取验证码了

  稍后我们会发现验证码无效。仔细分析抓包的请求数据,发现普通浏览器在请求验证码时会带一个额外的ts。

  参数,该参数是由当前时间戳生成的,但它不是完整的时间戳,而是将时间戳四舍五入保留字后九位

  Fustring,对付这种第三方服务只能小心翼翼,运气好,三分之一的日子注定是猜不透的。还有一种特殊的第三方检验

  证书代码,也就是所谓的拖拽验证,只能说互联网创业有3种模式:2b、2c、2vc。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线