spider抓取过程中涉及到的主要策略类型:抓取友好性
优采云 发布时间: 2021-06-10 02:12
spider抓取过程中涉及到的主要策略类型:抓取友好性
Spider 在爬取过程中面临着复杂的网络环境,为了使系统能够捕获尽可能多的有价值的资源,并在实际环境中保持系统和页面的一致性而不造成网站体验压力,将设计各种复杂的抓取策略。下面简单介绍一下爬取过程中涉及的主要策略类型:
1、Grab-friendliness:Grab 压力部署减少对网站 的访问压力
2、常用抓取返回码提示
3、识别多个URL重定向
4、Grabbing 优先分配
5、重复网址过滤
6、Darknet 数据采集
7、Grab 反作弊
8、提高抓取效率,有效利用带宽
1、Grab 友好
互联网资源具有巨大的数量级,这就要求抓取系统尽可能高效地使用带宽,在有限的硬件和带宽资源下抓取尽可能多的有价值的资源。这会导致另一个问题。捕获的网站带宽被消耗,造成访问压力。如果度数过大,会直接影响抓到的网站的正常用户访问行为。因此,在爬取过程中,必须控制一定的爬取压力,以达到不影响网站正常用户访问,尽可能多地抓取有价值资源的目的。
通常,最基本的是基于ip的压力控制。这是因为如果是基于一个域名,可能会出现一个域名对应多个ip(很多大网站)或者多个域名对应同一个ip(小网站share ip)的问题。在实践中,压力部署控制往往是根据ip和域名的各种情况进行的。同时,站长平台也推出了压力反馈工具。站长可以手动调整他的网站的抓取压力。此时百度蜘蛛会根据站长的要求,优先进行抓取压力控制。
对同一个站点的抓取速度控制一般分为两类:一类是一段时间内的抓取频率;二是一段时间内的爬取流量。同一个站点的爬取速度在不同的时间会有所不同。例如,在夜晚安静、月亮暗、风大的时候,爬行速度可能会更快。它还取决于特定的站点类型。主要思想是错开正常用户访问的高峰期,不断调整。对于不同的网站,也需要不同的抓取速度。
2、常用抓取返回码提示
简单介绍一下百度支持的几种返回码:
1) 最常见的 404 代表“NOTFOUND”。认为该网页无效,通常会从库中删除。同时,如果蜘蛛在短期内再次找到这个url,则不会被抓取;
2)503 代表“ServiceUnavailable”。认为该网页暂时无法访问。通常网站暂时关闭,带宽受限等都会造成这种情况。对于返回503状态码的网页,百度蜘蛛不会直接删除网址,会在短时间内多次访问。如果网页已经恢复,则可以正常抓取;如果继续返回503,URL仍然会被认为是断开的链接并从库中删除。
3)403 代表“Forbidden”,认为该网页目前已被禁止。如果是新的url,蜘蛛暂时不会被抓取,短时间内会被多次访问;如果是收录url,不会直接删除,短时间内会被多次访问。如果网页访问正常,就会正常抓取;如果仍然被禁止访问,那么这个 url 也将被视为无效链接并从库中删除。
4)301 代表“MovedPermanently”并认为网页被重定向到新的 url。在网站迁移、域名更换、网站改版等情况下,建议使用301返回码和站长平台网站改版工具,减少改版带来的网站流量损失。
3、多URL重定向的识别
由于各种原因,Internet 上的某些网页具有 URL 重定向状态。为了正常抓取这些资源,需要蜘蛛识别和判断URL重定向,防止作弊。重定向可以分为三类:http30x重定向、metarefresh重定向和js重定向。另外,百度还支持Canonical标签,可以看作是间接重定向的效果。
4、Grabbing 优先分配
由于互联网资源规模的巨大而快速的变化,搜索引擎几乎不可能全部捕获并合理更新以保持一致性。这就需要爬虫系统设计一套合理的抓包。采取优先部署策略。主要包括:深度优先遍历策略、广度优先遍历策略、pr-first策略、反链策略、社交分享引导策略等,每种策略各有优缺点。在实际情况下,往往会采用多种策略组合使用,以达到最佳捕获效果。
5、重复网址过滤
爬虫在爬取过程中需要判断一个页面是否被爬过。如果还没有被爬取,那么它会爬取该网页并将其放入已爬取的URL集合中。判断是否被抓取。其中最重要的就是快速搜索和比对,还涉及到url归一化识别。例如,一个url收录大量无效参数,但实际上是同一个页面,将被视为同一个url。 .
6、Darknet 数据采集
互联网上存在大量搜索引擎暂时无法抓取的数据,称为暗网数据。一方面,网站的大量数据存在于网络数据库中,蜘蛛很难通过抓取网页获取完整的内容;另一方面,由于网络环境,网站本身不符合规范,以及孤岛等,也会导致搜索引擎无法抓取。目前暗网数据获取的主要思路还是采用通过开放平台提交数据的方式,如“百度站长平台”、“百度开放平台”等。
7、Grab 反作弊
蜘蛛在爬行过程中,经常会遇到所谓的爬行黑洞或者面对大量低质量的页面。这就要求爬虫系统也要设计一个完整的爬虫防作弊系统。例如,分析url特征,分析页面大小和内容,分析与抓取规模对应的站点大小等。
本文作者:百度站长平台李,选自百度站长社区论坛,泰坦传媒编辑
技术控是百度新闻和钛媒体为技术爱好者打造的专栏。