c爬虫抓取网页数据(2.通用爬虫框架流程a精选部分网页链接(组图))
优采云 发布时间: 2022-04-03 12:13c爬虫抓取网页数据(2.通用爬虫框架流程a精选部分网页链接(组图))
(公众号:9z营销大数据)
2014年,一本名为《这就是搜索引擎:核心技术详解》的书,将“搜索”这个核心话题再次带入大众视野。撇开本书第一版和第二版折射出的隐藏魅力不谈,正如书中所说,“搜索引擎”基于其作为互联网门户的作用及其复杂的实现方式,是目前最流行的互联网产品。有技术含量的产品,如果不是唯一的,至少也是其中之一。
今天我们要讨论的话题是围绕“爬虫爬取策略”对爬虫做一个简单的介绍,并通过这个来带领身边的“老司机”去发现那些可能被忽略的理论。
1.一句话总结爬虫
“将海量网页数据传输到本地,形成亿万网页的镜像备份”高效下载系统设计。
2. 通用爬虫框架流程
一种。选择部分网页链接地址作为*敏*感*词*网址,将*敏*感*词*网址放入待抓取的网址队列中;
湾。从待爬取的URL队列中依次读取URL,将URL链接地址通过DNS转换为网站服务器对应的IP地址;
C。将网页的网站IP地址和相对路径名交给网页下载器下载网页内容;
d。将下载的网页对应的URL放入已经爬取的URL队列中,将下载的网页内容存储在页库中,供后续处理;
e. 将刚刚下载的网页中的所有链接提取出来,并与已经爬取的URL队列进行比较,将没有被爬取的URL链接检查出来放入待爬取的URL队列中,重复新一轮的爬取操作;
F。循环直到所有网页都被爬取完毕,完成一个完整的爬取过程。
PS。动态爬取中的爬虫及与网页的相对关系
已下载网页合集:已被爬虫从互联网下载到本地索引的网页合集;
过期网页集合:对应的互联网网页已动态更新,但未被爬虫抓取,已下载到本地网页集合;
待下载网页集合:URL队列中待抓取网页的集合;
已知网页集合:存在于已被抓取或将被抓取且尚未被抓取的网页中,但迟早会被爬虫通过链接关系发现,并将被抓取并被抓取的网页的集合。索引;
不可知的网页集合:爬虫无法抓取的网页集合;
3. 三种爬虫类
一种。批量爬虫
有明确的爬取范围和目标,达到设定目标(特定页数或特定时长)时停止爬取的爬虫类型;
湾。增量爬虫
不断爬取网页并定期更新爬取网页的爬虫类型;
C。垂直爬行动物
只爬取行业特定网页或主题内容的爬虫类型
4. 优秀爬虫需要满足的条件
一种。高性能
单位时间内爬取尽可能多的网页;
湾。可扩展
通过增加爬取服务器和爬虫数量可以轻松解决缩短爬取周期的问题;
C。鲁棒性
能正确处理网页HTML编码不规范、服务器突然崩溃、爬虫陷阱等异常情况,避免工作中断,或在中断后轻松恢复之前抓取的数据;
d。友好的
保护网站的部分隐私(避免爬取爬虫禁止协议下的网页,避免爬取网页禁止标记下的部分内容),减少被爬取的网站@的网络负载>;
5. 爬虫策略
爬取的一般原则是优先对重要的网页进行爬取(PageRank是评价网页重要性的常用标准),确定待爬取URL的队列是技术的关键。
根据URL优先级确定方法的不同,四种爬取策略分为以下几种:
一种。广度优先遍历策略
含义:一种通过“直接机械地将新下载的网页中收录的链接附加到待爬取的URL队列末尾”的方式,合理安排URL下载顺序的爬取策略。
特点:简单直观,历史悠久,功能强大,比较各种抢策略的标杆策略。
优缺点:基本可以保证要爬取的url列表按照网页的重要性排序,效果很好。
湾。不完整的PageRank策略
PageRank:一种众所周知的全球链接分析算法,用于确定网页的重要性。
不完整的PageRank策略:一种爬虫策略,“在不完整的互联网页面的一个子集中计算PageRank,形成待爬取URL队列”,即与下载的网页和待爬取URL队列中的URL一起,形成一个网页集合,计算形成的网页集合中的PageRank,将待爬取URL队列按照PageRank得分从高到低的顺序重新排列,形成新的待爬取URL队列,这样的爬取策略.
l 不完整PageRank往往采用“每次有足够K个新下载的页面,重新计算所有下载页面的不完整PageRank”的方法进行;
l 在进行新一轮不完整的PageRank计算之前,给新提取的没有PageRank值的网页分配一个临时的PageRank值,与待爬取的URL列表形成大小对比,考虑到新提取的网页需要先被抓取。需要。
利弊:众说纷纭
c.OCIP策略
含义:OCIP,在线页面重要性计算。在算法开始之前,所有互联网页面都被赋予相同的*敏*感*词*(cash),每下载一个页面,就会将相应的*敏*感*词*分配给该页面所收录的页面链接,以清除下载页面的*敏*感*词*价值。待爬取URL队列中的网页按*敏*感*词*降序排列,按顺序获取”
效果:更好的重要性度量策略,效果优于广度优先遍历策略。
优缺点:无需迭代,计算速度快,适合实时计算。
d。大网站优先策略
含义:优先下载大的网站,即以网站为单位衡量网页的重要性,对于URL队列中待抓取的网页,根据其< @网站, if which 网站 网站等待下载的页面最多,会先下载这些链接。
公众号:9z营销大数据