通用爬虫网络的实现原理
(1)获取初始的URL.初始的URL地址可以由用户人为地指定,也可以由用户指定的某个或某几个初始爬取网页决定。
(2)根据初始的URL爬取页面并获得新的URL.获得初始的URL地址之后,首先需要爬取对应URL地址中的网页,爬取了到应的URL地址中的网页后,将网页存储到原始数据库中,并且在爬取网页的同时,发现新的URL地址,同时将已爬取的URL地址存放到一个URL列表中,用于去重及判断爬取的进程。
(3)将新的URL放到URL队列中。在第2步中,获取了下一个新的URL地址之后,会将新的URL地址放到URL队列中。
(4)从URL队列中读取新的URL,并依据新的URL爬取网页,同时从新网页中获取新URL,并重复上述的爬取过程。
(5)满足爬虫系统设置的停止条件时,停止爬取,有为编写爬虫的时候,一股会设置相应的停止条件。如果没有设置停止条件,爬虫则会一直爬取下去,一直到无法获取新的URL 地址为止,若设置了停止条件,爬虫则会在停止条件满足时停止爬取
聚焦网络爬虫实现原理
聚焦网络爬虫中,由于其需要有目的进行爬取,所以对于通用爬虫网络来说,必须要增加目标的定义和过滤机制,具体来说,此时,其执行原理和过程需要比通用爬虫网络多处三步,即目标的定义,无关链接的过滤,下一步要爬取的URL地址的选取等,如下图:
(1)对爬取目标的定义和描述。在聚焦网络爬虫中,我们首先要依据爬取需求定义好该聚焦网络爬取的目标,以及进行相关的描述。
(2)获取初始的URL
(3)根据初始的URL爬取页面,并获得新的URL.
(4)从新的URL中过滤掉与爬取目标无关的链接接。因为聚焦网络爬虫到网页的爬取是有目的性的,以与目标无关的网页将会被过滤掉。同时,也需要将已爬取的URL地址存放到一个URL列表中,于去重和判断爬取的进程。
(5)将过滤后的链接放到URL队列中。
(6)从URL队列中,根据搜索算法,确定URL的优先级,并确定下一步登爬取的URL地址。在通用网络爬虫中,下一步爬取哪些URL地址,是不太重要的,但是在聚焦网络爬虫中,由于其具有目的性,故而下一步爬取哪些URL地址相对来说是比较重要的。对于聚焦网络爬虫来说,不同的爬顺序,可能导致爬虫的执行效率不同,所以,我们需要依据搜索策略来确定下一步需要爬取哪些URL址。
(7)从下一步登爬取的URL地址中,读取新的URL,然后依据新的URL地址爬取网页,并重复上述爬取过程。
(8)满足系统中设置的停止条件时,或无法获取新的URL地址时,停山嘴丁。
爬行策略
深度优先爬行策略,广度优先爬行策略,大站优先策略,反链策略,其他爬行策略
大站爬行策略:网站的网页数量多,那么我们则将其称为大站,实行大站优先策略
反链策略:一个网页的反链接数,值得是该网页被其他网页指向的次数,次数越多则优先
其他的爬行策略有OPIC策略,Partial策略,PagePank策略
网页更新策略
具体来说,常见的网页更新策略主要有3种:用户体验策略、历史数据策略、聚类分析策略等,以下景们4各分别进行讲解。
(1)在搜索引擎查询某个关健键的时候,会出现一个排名结果,在排名结果中,通常会有大量的网页,但是,大部分用户都只会关注排名靠前的网页,所以,在爬虫服务器资源有限的情况下,爬虫会优先更新排名结果靠前的网页。这种更新策略,我们称之为用户体验策略,那么在这种策略中,爬虫到底何时型爬取这些排名结果靠前的网页呢?此时,爬取中会保留对应网页的多个历史版本,并进行到应分析,据这多个历史版本的内容更新、搜索质量影响、用户体验等信息,来确定对这些网页的爬取周期。
(2)除此之外,我们还可使用历史数据策略来确定对网页更新爬取的周期。比如,我们可以依据某一个网页的历史更新数据,通过泊松过程进行建模等手段,预测该网页下一次更新的时间,从而确定下一次该网页爬取的时间,即确定更新周期。
(3)以上两种策略,都需要历史数据作为依据。有的时候,若一个网页为新网页,则不会有到应的历史数据,并且,如果要依据历史数据进行分析,则需要爬虫服务器保存到应网页的历史版本信息,这无疑€爬虫服务器忙来了更多的压力和负担。如果想要解决这些问题,则需要采取新的更新策略。比较常用自是聚类分析策略。那么什么是聚类分析策略呢
1)首先,经过大量的研究发现,网页可能具有不同的内容,但是一股来说,具有类似属性的网页,其更新频率类似。这是聚类分折算法运用在爬虫网页的更新上的一个前提指导思想。
2)有了1中的指导思想后,我们可以首先对海量的网页进行聚类分析,在聚类之后,会形成多个类,每个类的网页具有类似的属性,即一般具有类似的更新频率。
3)聚类完成后,我们可以到同一个聚类中的网页进行抽样,然后求该抽样结果的平均更新值,从而确每个聚类的爬行频率。
以上,就是使用爬虫爬取网页的时候,常见的3种更新策略,我们掌3屋了其算法思想后,在后续我们进行爬虫的实际开发的时候,编写出来的爬虫执行效率会更高,并且执行逻辑会更合理。
网页分析算法
(引用)
身份识别
爬虫在对网页进行爬取访问的时候,会通过HTTP请求中的User Agent 字段告知在自己的身份信息。一般爬虫在访问一个网站的时候,首先会根据该站点下的Robots,txt文件确定可爬取的玩也范围,Robots协议需要网络爬虫共同遵守,对于一些禁止的URL地址,会停止爬取。当然可以通过伪装成其他爬虫或浏览器去爬取,或者直接无视Robots协议
总结
(1)聚焦网络爬虫,由于其需要有目的进行爬取,所以对于通用网路爬虫来说,必须增加目标的定义和过滤机制,具体来说,此时,其执行原理和过程需要比通用网络爬虫多出3步,即目标的定义,无关链接的过滤,下一步要爬取的URL地址的选取
(2) 常见的网页更新策略主要有3种:用户体验策略,历史数据策略,聚类分析策略
(3)聚类分析可以依据商品之间的共性相应的处理,将共性较多的商品聚为一类
(4)在爬虫对网页爬取的过程中,爬虫必然需要访问对应的网页,此时,正规的爬虫一般会告诉对应网页的网站站长其爬虫身份,网站管理员则可以通过爬虫告知的身份信息进行识别,我们称这个过程为爬虫的身份识别过程
(5)开发网络爬虫的语言很多,常见的有 Python,Java,PHP,Node.JS,C++,Go等
(6)metaseeker 是一款比较实用的网站数据采集程序,使用该采集程序,可以让大家比较快速,形象地了解爬虫地工作过程