Python程序设计-第10章-基于Scrapy架构的Python爬虫案例分析.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Python程序设计-第10章-基于Scrapy架构的Python爬虫案例分析.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 程序设计 10 基于 Scrapy 架构 爬虫 案例 分析
- 资源描述:
-
1、PythonPython程序设计程序设计10基于基于Scrapy架构的架构的Python爬虫案例分析爬虫案例分析第章 本章我们首先将以互联网上最流行的网络爬虫为基础,学习与掌握网络爬虫的基本原理和实现技术。随后讲解实现网络爬虫的Scrapy架构;最后开发几种典型的网络爬虫,让用户在实战项目中由浅入深地掌握Python案例开发。前言前言本章内容本章内容10.1网络爬虫的工作原理网络爬虫的工作原理10.2 Scrapy架构架构10.3 Scrapy安装及使用安装及使用10.4综合案例分析综合案例分析10.5本章小结本章小结10.1网络爬虫的工作原理网络爬虫的工作原理v 网络爬虫是捜索引擎抓取系统的
2、重要组成部分。爬虫的主要目的是将互联网上的网页下载到本地形成一个或联网内容的镜像备份。v 爬虫原理是从起始种子链接开始,通过发送http请求,得到该链接的内容,然后采用正则匹配获取网页中的有效链接,并将这些链接保存到待访问队列中,等待爬取线程爬取此待访队列,为了有效的减少不必要的网络请求,当链接被访问后,将把访问过的链接放到一个已访问MAP中,已防止程序重复爬取以至于导致死循环。10.1.1基本概念及分类基本概念及分类v 1.定义v 网络爬虫(又被称为网页蜘蛛,网络机器人),简单讲,就是按照一定的规则,自动地抓取互联网信息的程序或者脚本。另外在互联网上经常有一些不常使用的名字例如:蚂蚁、自动索
3、引、模拟程序或者蠕虫。v 网络爬虫是一个自动提取网页的程序,它为搜索引擎从互联网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。10.1.1基本概念及分类基本概念及分类v 2.分类v 网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫(General Purpose Web Crawler)、聚焦网络爬虫(Focused Web Crawler)、增量式网络爬虫(Incremental Web Crawler)、深层网络爬虫(Deep
4、Web Crawler)。实际的网络爬虫系统通常是几种爬虫技术相结合实现的。10.1.1基本概念及分类基本概念及分类v(1)通用网络爬虫v 通用网络爬虫又称全网爬虫(Scalable Web Crawler),爬行对象从一些种子 URL 扩充到整个 Web,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据。由于商业原因,它们的技术细节很少公布出来。这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面。虽然存在一定缺陷,通用网络爬虫适用于为搜索引擎搜索广泛的主题,有
5、较强的应用价值。v 通用网络爬虫的结构大致可以分为页面爬行模块、页面分析模块、链接过滤模块、页面数据库、URL 队列、初始 URL 集合几个部分。10.1.1基本概念及分类基本概念及分类v(2)聚焦网络爬虫v 聚焦网络爬虫(Focused Crawler),又称主题网络爬虫(Topical Crawler),是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面,极大地节省了硬件和网络资源,保存的页面也由于数量少而更新快,还可以很好地满足一些特定人群对特定领域信息的需求。v 聚焦网络爬虫和通用网络爬虫相比,增加了链接评价模块以及内容评价
6、模块。聚焦爬虫爬行策略实现的关键是评价页面内容和链接的重要性,不同的方法计算出的重要性不同,由此导致链接的访问顺序也不同。v(3)增量式网络爬虫v 增量式网络爬虫(Incremental Web Crawler)是 指 对 已 下 载 网 页 采 取 增 量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。增量式网络
7、爬虫的体系结构包含爬行模块、排序模块、更新模块、本地页面集、待爬行 URL 集以及本地页面URL 集。10.1.1基本概念及分类基本概念及分类v(4)Deep Web 爬虫v Web 页面按存在方式可以分为表层网页(Surface Web)和深层网页(Deep Web,也称 Invisible Web Pages 或 Hidden Web)。表层网页是指传统搜索引擎可以索引的页面,以超链接可以到达的静态网页为主构成的 Web 页面。Deep Web 是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web 页面。例如那些用户注册后内容才可见的网页就属
8、于 Deep Web。2000 年 Bright Planet 指出:Deep Web 中可访问信息容量是 Surface Web 的几百倍,是互联网上最大、发展最快的新型信息资源。10.1.1基本概念及分类基本概念及分类v 在网络爬虫的系统框架中,主过程由控制器,解析器,资源库三部分组成。控制器的主要工作是负责给多线程中的各个爬虫线程分配工作任务。解析器的主要工作是下载网页,进行页面的处理,主要是将一些JS脚本标签、CSS代码内容、空格字符、HTML标签等内容处理掉,爬虫的基本工作是由解析器完成。资源库是用来存放下载到的网页资源,一般都采用大型的数据库存储,如Oracle数据库,并对其建立索
9、引。10.1.2组成组成v 控制器v 控制器是网络爬虫的中央控制器,它主要是负责根据系统传过来的URL链接,分配一线程,然后启动线程调用爬虫爬取网页的过程。v 解析器v 解析器是负责网络爬虫的主要部分,其负责的工作主要有:下载网页的功能,对网页的文本进行处理,如过滤功能,抽取特殊HTML标签的功能,分析数据功能。v 资源库v 主要是用来存储网页中下载下来的数据记录的容器,并提供生成索引的目标源。中大型的数据库产品有:Oracle、Sql Server等。10.1.2组成组成10.1.3实现原理实现原理v 在本节中,我们将以两种典型的网络爬虫为例(即通用网络爬虫和聚焦网络爬虫),分别介绍网络爬虫
10、的实现原理1.通用网络爬虫v 1)获取初始的URL。初始的URL地址可以由用户人为地指定,也可以由用户指定的某个或某几个初始爬取网页决定v 2)根据初始的URL爬取页面并获得新的URL。获得初始的URL地址之后,首先需要爬取对应URL地址中的网页,爬取了对应的URL地址中的网页后,将网页存储到原始数据库中,并且在爬取网页的同时,发现新的URL地址,同时将已爬取的URL地址存放到一个URL列表中,用于去重及判断爬取的进程。10.1.3实现原理实现原理v 3)将新的URL放到URL队列中。在第2步中,获取了下一个新的URL地址之后,会将新的URL地址放到URL队列中。v 4)从URL队列中读取新的
11、URL,并依据新的URL爬取网页,同时从新网页中获取新URL,并重复上述的爬取过程。v 5)满足爬虫系统设置的停止条件时,停止爬取。在编写爬虫的时候,一般会设置相应的停止条件。如果没有设置停止条件,爬虫则会一直爬取下去,一直到无法获取新的URL地址为止,若设置了停止条件,爬虫则会在停止条件满足时停止爬取。10.1.3实现原理实现原理10.1.3实现原理实现原理v 2.聚焦网络爬虫v 聚焦网络爬虫,由于其需要有目的地进行爬取,所以对于通用网络爬虫来说,必须要增加目标的定义和过滤机制,具体来说,此时,其执行原理和过程需要比通用网络爬虫多出三步,即目标的定义、无关链接的过滤、下一步要爬取的URL地址
12、的选取等。v 1)对爬取目标的定义和描述。在聚焦网络爬虫中,我们首先要依据爬取需求定义好该聚焦网络爬虫爬取的目标,以及进行相关的描述。v 2)获取初始的URL。v 3)根据初始的URL爬取页面,并获得新的URL。v 4)从新的URL中过滤掉与爬取目标无关的链接。因为聚焦网络爬虫对网页的爬取是有目的性的,所以与目标无关的网页将会被过滤掉。同时,也需要将已爬取的URL地址存放到一个URL列表中,用于去重和判断爬取的进程。10.1.3实现原理实现原理v 5)将过滤后的链接放到URL队列中。v 6)从URL队列中,根据搜索算法,确定URL的优先级,并确定下一步要爬取的URL地址。在通用网络爬虫中,下一
13、步爬取哪些URL地址,是不太重要的,但是在聚焦网络爬虫中,由于其具有目的性,故而下一步爬取哪些URL地址相对来说是比较重要的。对于聚焦网络爬虫来说,不同的爬取顺序,可能导致爬虫的执行效率不同,所以,我们需要依据搜索策略来确定下一步需要爬取哪些URL地址。v 7)从下一步要爬取的URL地址中,读取新的URL,然后依据新的URL地址爬取网页,并重复上述爬取过程。v 8)满足系统中设置的停止条件时,或无法获取新的URL地址时,停止爬行。v 现在我们初步掌握了网络爬虫的实现原理以及相应的工作流程,下面来了解网络爬虫的爬行策略。10.1.3实现原理实现原理10.1.4抓取策略抓取策略v 抓取策略主要有深
14、度优先遍历策略、宽度优先遍历策略、反向链接数策略、最佳优先搜索策略、Partial PageRank策略、其他策略等。v 1.深度优先遍历策略v 深度优先遍历策略从起始网页开始,选择一个URL进入,分析这个网页中的URL,选择一个再进入。如此一个链接一个链接地抓取下去,直到处理完一条路线之后再处理下一条路线。10.1.4抓取策略抓取策略v 2.宽度优先遍历策略v 宽度优先遍历策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页,一般使用宽度优先遍历策略。v 3.反向链接数策略v 反向链接数是指一个网页被其他网页链接指向的数量
15、。反向链接数表示的是一个网页的内容受到其他人的推荐的程度。因此,很多时候搜索引擎的抓取系统会使用这个指标来评价网页的重要程度,从而决定不同网页的抓取先后顺序。10.1.4抓取策略抓取策略v 4.最佳优先搜索策略v 最佳优先搜索策略按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。它只访问经过网页分析算法预测为“有用”的网页。存在的一个问题是,在爬虫抓取路径上的很多相关网页可能被忽略,因为最佳优先策略是一种局部最优搜索算法。因此需要将最佳优先结合具体的应用进行改进,以跳出局部最优点。研究表明,这样的闭环调整可以将无关网页数量降低
展开阅读全文