版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Python爬虫设计入门,重庆大学软件服务工程实验室 余俊良,Using Python To Design A Crawler,Summarize,基本的爬虫工作原理 简单爬虫设计 入门库: 下载网页:urllib,Requests 解析网页:BeautifulSoup 模拟交互,处理JS动态网页:Selenium 高级爬虫框架Scrapy 分布式爬虫设计 分布式队列 布隆过滤器 (Bloom Filter),网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页
2、面上抽取新的URL放入队列,直到满足系统的一定停止条件。,什么是爬虫,批量型爬虫 批量型爬虫有明确的抓取范围和目标,当爬虫达到这个设定的目标后,即停止抓取过程。 增量型爬虫 增量型爬虫会持续不断的抓取,对于抓取的网页,要定期更新。通用的商业搜索引擎爬虫基本都属于此类。 垂直型爬虫 垂直型爬虫关注特定主题内容或者属于特定行业的网页,其他主题或者其他行业的内容不再考虑范围。,爬虫的分类,通用爬虫框架,基本工作流程,网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL; 2.将这些URL放入待抓取URL队列; 3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip
3、,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。 4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。,从爬虫的角度对互联网进行划分,从爬虫的角度对互联网进行划分,对应的,可以将互联网的所有页面分为五个部分: 1.已下载未过期网页 2.已下载已过期网页:抓取到的网页实际上是互联网内容的一个镜像与备份,互联网是动态变化的,一部分互联网上的内容已经发生了变化,这时,这部分抓取到的网页就已经过期了。 3.待下载网页:也就是待抓取URL队列中的那些页面 4.可知网页:还没有抓取下来,也没有在待抓取
4、URL队列中,但是可以通过对已抓取页面或者待抓取URL对应页面进行分析获取到的URL,认为是可知网页。 5.还有一部分网页,爬虫是无法直接抓取下载的。称为不可知网页。,抓取策略,在爬虫系统中,待抓取URL队列是很重要的一部分。待抓取URL队列中的URL以什么样的顺序排列也是一个很重要的问题,因为这涉及到先抓取那个页面,后抓取哪个页面。而决定这些URL排列顺序的方法,叫做抓取策略。下面重点介绍几种常见的抓取策略: 1.深度优先遍历策略 2.宽度优先遍历策略 3.反向链接数策略 4.Partial PageRank策略,抓取策略,depth-first: 遍历的路径:A-F-G E-H-I B C
5、 D breadth-first: 遍历的路径:A-B-C-D-E-F G H I,网页更新策略,互联网是实时变化的,具有很强的动态性。网页更新策略主要是决定何时更新之前已经下载过的页面。常见的更新策略又以下三种: 1.历史参考策略 顾名思义,根据页面以往的历史更新数据,预测该页面未来何时会发生变化。一般来说,是通过泊松过程进行建模进行预测。,网页更新策略,2.用户体验策略尽管搜索引擎针对于某个查询条件能够返回数量巨大的结果,但是用户往往只关注前几页结果。因此,抓取系统可以优先更新那些显示在查询结果前几页中的网页,而后再更新那些后面的网页。这种更新策略也是需要用到历史信息的。用户体验策略保留网
6、页的多个历史版本,并且根据过去每次内容变化对搜索质量的影响,得出一个平均值,用这个值作为决定何时重新抓取的依据,网页更新策略,3.聚类抽样策略 前面提到的两种更新策略都有一个前提:需要网页的历史信息。这样就存在两个问题:第一,系统要是为每个系统保存多个版本的历史信息,无疑增加了很多的系统负担;第二,要是新的网页完全没有历史信息,就无法确定更新策略。 这种策略认为,网页具有很多属性,类似属性的网页,可以认为其更新频率也是类似的。要计算某一个类别网页的更新频率,只需要对这一类网页抽样,以他们的更新周期作为整个类别的更新周期。,分布式抓取系统结构,一般来说,抓取系统需要面对的是整个互联网上数以亿计的
7、网页。单个抓取程序不可能完成这样的任务。往往需要多个抓取程序一起来处理。一般来说抓取系统往往是一个分布式的三层结构。如图所示:,分布式抓取系统结构,最下一层是分布在不同地理位置的数据中心,在每个数据中心里有若干台抓取服务器,而每台抓取服务器上可能部署了若干套爬虫程序。这就构成了一个基本的分布式抓取系统。 对于一个数据中心内的不同抓去服务器,协同工作的方式有几种: 1.主从式(Master-Slave) 2.对等式(Peer to Peer),主从式抓取系统结构,主从式抓取系统结构,对于主从式而言,有一台专门的Master服务器来维护待抓取URL队列,它负责每次将URL分发到不同的Slave服务
8、器,而Slave服务器则负责实际的网页下载工作。Master服务器除了维护待抓取URL队列以及分发URL之外,还要负责调解各个Slave服务器的负载情况。以免某些Slave服务器过于清闲或者劳累。 这种模式下,Master往往容易成为系统瓶颈。,对等式抓取系统结构,对等式抓取系统结构,在这种模式下,所有的抓取服务器在分工上没有不同。每一台抓取服务器都可以从待抓取在URL队列中获取URL,然后对该URL的主域名的hash值H,然后计算H mod m(其中m是服务器的数量,以上图为例,m为3),计算得到的数就是处理该URL的主机编号。 这种模式有一个问题,当有一台服务器死机或者添加新的服务器,那么
9、所有URL的哈希求余的结果就都要变化。也就是说,这种方式的扩展性不佳。,对等式抓取系统结构,在这种模式下,所有的抓取服务器在分工上没有不同。每一台抓取服务器都可以从待抓取在URL队列中获取URL,然后对该URL的主域名的hash值H,然后计算H mod m(其中m是服务器的数量,以上图为例,m为3),计算得到的数就是处理该URL的主机编号。 这种模式有一个问题,当有一台服务器死机或者添加新的服务器,那么所有URL的哈希求余的结果就都要变化。也就是说,这种方式的扩展性不佳。,布隆过滤器,在构建分布式爬虫时抓取海量网页时,通常需要维护一个很长的已抓取URL集合,避免重复抓取已经下载过的网页。然而即
10、使使用哈希表来构建这个集合,依然面临着冲突和内存利用率不高的缺点。通常的判重做法是使用Bloom Filter(布隆过滤器)来进行已抓取网页查找。,布隆过滤器,布隆过滤器(Bloom Filter)是由布隆(Burton Howard Bloom)在1970年提出的。它实际上是由一个很长的二进制向量和一系列无关的哈希函数组成,布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。即Bloom Filter报告某一元素存在于某集合中,但是实际上该元素并不在集合中,但是没有识别错误的情形,如果某个元素在该集合中,那么Bloom Filter 是不会报告该元素不在集合中的,所以不会漏报。,布隆过滤器,相比于其它的数据结构,布隆过滤器在空间和时间方面都有巨大的优势。布隆过滤器存储空间和插入/查询时间都是常数。另外, Hash 函数相互之间没有关系,方便由硬件并行实现。布隆过滤器不需要存储元素本身,在某些对保密要求非常严格的场合有优势。,Python高级爬虫框架Scrapy,Scrapy,Python开发的一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桶装水消毒药剂使用安全管控规范
- 黑龙江财经学院《绘本创作》2024-2025学年第二学期期末试卷
- 齐鲁师范学院《CA课件设计》2024-2025学年第二学期期末试卷
- 龙岩学院《高级食品营养学》2024-2025学年第二学期期末试卷
- 西方经济学职业路径解析
- 实习心得体会15篇
- 2025-2030中国黄磷市场发展建议及前景运行状况监测研究报告
- 动火作业安全防护规范
- 2025-2026学年线下旗袍教学设计
- 检讨学生的检讨书
- 2025年上饶职业技术学院单招综合素质考试试题及答案解析
- 2026年包头铁道职业技术学院单招职业适应性考试题库及参考答案详解(新)
- 女性职场健康 保健知识课件
- 河北保定市安新县2025-2026学年第一学期期末质量监测九年级数学试题(试卷+解析)
- 2026年春季人教版(PEP)三年级下册英语教学计划附教学进度表
- 特种设备质量安全风险日管控周排查月调度管理制度
- CMA质量手册(2025版)-符合27025、评审准则
- 饲料厂复工安全培训课件
- 2025年夜间音乐节五年行业报告
- 光伏电站运维安全教育培训
- 甘肃银行笔试题库及答案
评论
0/150
提交评论