集搜客网页抓取软件(网站为什么以及如何制定反爬虫策略,可以看总结 )

优采云 发布时间: 2022-04-06 11:09

  集搜客网页抓取软件(网站为什么以及如何制定反爬虫策略,可以看总结

)

  随着大数据的普及,各种网络抓取/爬取工具涌入互联网。因此,网页数据成为大家竞争和掠夺的资源,但网站运营商不得不开始保护自己的数据资源,避免被竞争对手收购,防止更大的业务损失。下面总结一下反爬虫的策略以及如何应对。

  一、什么是爬虫和反爬虫

  爬虫和反爬虫是彼此的死敌。再厉害的爬虫也能被复杂的反爬虫机制发现。负键取决于双方投入了多少资源。为了更好地理解爬虫和反爬虫机制,以下是一些定义:

  所以,我们可以知道爬虫最基本的特性之一就是batch size,反爬虫机制也是基于这个特性来做出判断,但是反爬虫还是一个权衡利弊的选择缺点,不仅误伤率低,还需要更高的拦截率,这也是它的弱点。 网站为什么以及如何制定反爬虫策略,可以看反爬虫经验总结。

  二、反爬虫方法及其应对方法

  一般网站反爬虫从三个方面进行:请求网站访问时的请求头、用户行为、目标网站的目录和数据加载方式。前两个方面可以说是最常见的反爬虫策略,而第三个方面则是使用ajax(异步加载)加载页面目录或内容,并增加爬虫访问目标后获取的数量网站 数据的难度。

  但是仅仅检查请求头或者做一些IP限制显然不能满足网站运营商对反垃圾邮件的要求,所以还有很多进一步的对策。主要的大概有:Cookie限制、验证码反爬虫、Noscript。

  2.1个通过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是区域内所有人共享的,所以这个间隔不需要特别长

  对于第二种情况,下一个请求可以在每次请求后以几秒的随机间隔发出。对于存在逻辑漏洞的网站,可以通过多次请求、注销、重新登录、继续请求的方式,绕过同一账号短时间内不能多次发出同一个请求的限制。如果有多个账号,切换使用,效果会更好。

  Jisoke Crawler 的 Firefox 插件版本安装在 Firefox 浏览器上。所有访问行为都会被加密并记录在火狐浏览器中。通过定期清理cookies、切换访问账号、控制采集速度、更改IP地址,可以避开这种反爬机制。此外,吉索客还准备开发ip代理功能,让采集数据更方便流畅。

  2.3个动态页面的反爬虫

  以上情况大多出现在静态页面上,但是对于动态页面,我们需要爬取的数据是通过ajax请求获取或者通过JavaScript生成的。首先使用 Firebug 或 HttpFox 分析网络请求。如果我们能找到ajax请求并分析出具体参数和响应的具体含义,就可以使用上面的方法直接使用requests或者urllib2来模拟ajax请求,分析响应json得到需要的数据。

  能够直接模拟ajax请求获取数据是很棒的,但是有的网站把ajax请求的所有参数都加密了。我们根本无法构造对我们需要的数据的请求。还有一些严格守卫的网站,除了对ajax参数进行加密外,还封装了一些基础功能,都是调用自己的接口,接口参数是加密的。

  遇到这样的网站,我们不能使用上面的方法。通过selenium+phantomJS框架,调用浏览器内核,使用phantomJS执行js模拟人类操作,触发页面中的js脚本。从填表到点击按钮再到页面滚动,都可以模拟,无论具体的请求和响应过程,只是完整的模拟了人们浏览页面获取数据的过程。使用这个框架几乎可以绕过大部分反爬虫,因为它不是冒充浏览器获取数据(上面提到的添加header在一定程度上是冒充浏览器),它本身就是浏览器,而且phantomJS 是一个没有界面的浏览器,但控制浏览器的不是人。

  吉搜客爬虫通过设置连续动作,实现点击、输入、提交、选择、暂停、滚动等浏览行为,完全模拟人们浏览网页的操作。是真正的浏览器+智能模拟行为。可以获取大部分动态网页信息。

  2.4 Cookie 限制

  类似于Headers验证的反爬机制,当用户向目标网站发送请求时,请求数据中会收录cookie。检查cookie的值,判断发起访问请求的人是真实用户还是爬虫。第一次打开网页时,会生成一个随机cookie。如果再次打开网页时cookie不存在,则重新设置,第三次仍然不存在。这很可能是爬虫在工作。

  Cookie验证和Headers的区别在于用户发送的Headers的内容形式是固定的,很容易被伪造,而Cookies不是。原因是我们在分析浏览器请求网站访问的过程中分析的cookies,往往是通过相关js等进程改变了域的cookies。如果直接修改爬虫携带的cookie来访问对应的网页,由于携带的cookie已经是访问后的域,而不是访问前的域,所以无法模拟整个过程成功。这种情况必然会导致爬虫无法访问页面。

  分析cookie,其中可能携带大量随机哈希字符串,或者不同时间戳的字符串,根据每次访问更新域的值。对于这个限制,首先,在捕获和分析目标网站时,首先要清除浏览器的cookie,然后在第一次访问时(通常在在这个过程中,有几次301/302跳转,每次跳转网站给浏览器返回不同的cookie,最后一次跳转请求成功)。抓包并分析请求细节后,在爬虫上模拟这个过渡过程,然后将cookie截取为爬虫自身携带的cookie,这样就可以绕过对目标网站的访问cookie 的限制。 .

  Jisooke 爬虫通过自己的浏览器访问网页。 采集用数据访问网页的过程和用浏览器访问网页的过程是一样的。因此,无需担心cookie限制导致访问失败,但建议定期清除cookie,这样可以更好地避免基于用户行为的反爬虫监控。

  2.5 验证码限制

  这是一种相当古老但有效的反爬虫策略。早先这种验证码可以通过OCR技术通过简单的图像识别来破解,但现在验证码的干扰线和噪音已经变得肉眼无法轻易识别。因此,目前由于OCR技术发展不畅,验证码技术成为了很多网站最有效的手段之一。

  除了识别挑战之外,CAPTCHA 还有另一个值得注意的问题。现在很多网站都在使用第三方验证码服务。当用户打开目标网站的登录页面时,登录页面显示的验证码是从第三方(如阿里云)提供的链接中加载的。这时候,我们在模拟登录的时候,需要多提供一步从网页中获取验证码的第三方链接,而这一步往往隐含着陷阱。以阿里云提供的验证码服务为例,登录页面的源码会显示阿里云提供的第三方链接,但是当这个链接被匹配到抓取验证码时,我们会发现验证代码无效。仔细分析抓包请求数据后发现,普通浏览器在请求验证码时会多带一个ts参数,而这个参数是由当前时间戳生成的,但并不是完整的时间戳,而是一个时间戳保留九位数字后对字符串进行四舍五入。对待这种第三​​方服务只能小心翼翼和运气好。还有一种特殊的第三方验证码,也就是所谓的拖拽验证。互联网创业只能说有2b、2c、2vc三种模式。

  吉搜客爬虫不仅可以连接打码平台,还可以自动识别滑块验证码。滑块验证码可以识别用户行为。 GooSeeker V7.0.1版本有记录用户行为功能,通过分析大量用户行为样本,提取行为特征,利用机器学习算法,实现滑块验证码的识别程序通过率高。

  如有疑问,或

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线