1、“.....直到达到系统的条件时停止。所有被网络爬虫抓取的网页将会被系统存储,进行定的分析过滤,并建立索引,对于主题网络爬虫来说,这过程所得到的分析结果还可能对后续的抓取过程进行反馈和指导。定义如果网页中包含超链接,则称为链接的父网页。定义如果超链接指向网页,则网页称为子网页,又称为目标网页。主题网络爬虫的基本思路就是按照事先给出的主题,分超链接和已经下载的网页内容,预测下个待抓取的及当前网页的主题相关度,保证尽可能多地爬行下载与主相关的网页,尽可能少地下载无关网页。摘自百度百科网络爬虫的分类网络爬虫种类繁多,如果按照部署在哪里分,可以分成服务器侧般是个多线程程序,同时下载多个目标,可以用般综合搜索引擎的爬虫这样做。但是,如果对方讨厌爬虫,很可能封掉服务器的,服务器又不容易改,另外耗用的带宽也是较贵。客户端很适合部署定题爬虫,或者叫聚焦爬虫。做个与,百度等竞争的综合搜索引擎成功的机会微乎其微,而垂直搜索或者比价服务或者推荐引擎,机会要多得多,这类爬虫不是什么页面都取的......”。
2、“.....而且只取页面上关心的内容,例如提取黄页信息,商品价格信息,还有提取竞争对手广告信息的。这类爬虫可以部署很多,而且可以很有侵略性。摘自百度百科系统需求分析本节内容将简要的分析下个网络蜘蛛应该具有的基本功能,包括下载网页分解网页遍历网络存储网页等。网络蜘蛛的技术难度并不是很高,但是要开发个速度快稳定性高的网络蜘蛛还是要下番功夫的。下载网页网络蜘蛛最基本的功能是能够从给定的网址下载网页。这个过程看似简单,但却要考虑几个问题。首先,要解决网页的编码问题,联通世界各个角落,每个国家和地区的网站使用着不同的编码,即使同在个国家的网站其使用的网页编码规则也不尽相同。比如说在我国,有些网站使用编码,有些则使用。如果对网页的编码不加判断的话,很有可能出现乱码。其次,网络的访问速度相对与的运算速度来说是非常慢的,因此,如果被设计成单线程的阻塞模型的程序的话,其抓取速度必然不能让人满意。可以考虑采用多线程或采用其它的模型来提升蜘蛛的抓取速度。第三......”。
3、“.....并不下载图片软件视音频文件等等。分解网页网络蜘蛛并不是单纯的把网页批量下载到本地硬盘的工具,它的目标是从网页中提取定的结构化的信息,比如说网页的标题网页的内容网页的大小网页中的链接等等。网页的内容并不是简单地指网页的代码,因为大部分的标签以及代码对我们的后期要进行的查询工作等都是冗余的,所以应该将它们剔除。网页的标题并不是简单地指网页源码中标签内的文本,而是指网页源码中最能概括出该网页内容的句话。提取网页的链接也不只是简单地提取源码中所有后面的,还包括框架页面,以及脚本中的自动转向页面地址。遍历网络本项目要开发的蜘蛛与等大型搜索引擎的蜘蛛不同,它的访问范围并不是整个互联网,而是用户指定的个或多个网站,因此蜘蛛在遍历网络的时候不能够漫无边际的爬行,而是在制定的范围内。网络遍历的算法可以是深度优先搜索宽度优先搜索启发式搜索等算法。存储网页由于本项目只是专注与网络蜘蛛的实现,为了便于测试,可以选用数据库......”。
4、“.....模型设计首先建立任务列表,即开始要爬取的。由任务列表开始,根据预先设定的关键字取网页,同时判断是否重复,按照定算法和排序方式搜索页面,然后对页面按照定算法进行分析,并提取相关,最后将所得返回任务列表。之后将任务列表中重新开始爬取,从而使网络爬虫进行循环运行。如图所示图系统流程图站点列表里面存储着用户指定的网站首页,程序运行后将其插入到优先队列,下载模块从优先队列里取出,把对应的网页下载下来,然后将网页源码交给分析模块,分析模块对网页进行分解,分析模块维护着张字典或表,记录着所有已经访问的,然后分析模块将所有未访问过的链接提取出来插入到优先队列,再把提取出的网页的标题内容大小等信息存入数据库。整个虚线方框里的过程是不断循环往复的,直到优先队列为空要获取的对象是存在于网络上数以亿计的网页,这些网页以超链接形式互相联系在起,每网页对应个超链接,也称统资源定位符。我们可以把网络看成个图网络中的网页构成节点集,他们之间的链接构成边集,正是从节点开始,沿着边......”。
5、“.....每访问到图中个节点,就进行定的处理。以下是本程序爬虫使用的框架,看起来更像是主题爬虫的框架。这是个单线程的框架,采用多线程技术是我们可看成是多个这个样的爬虫并发的的执行。数据库结构本项目的数据库结构很简单,总共两个表,个是未站点列表,个是网页存储表。图表示的表用于保存未访问的的信息表。图未访问的站点存储表图显示的是表的设计,用于保存已经访问的的信息图网页存储表技术选型简介是由公司于年月推出的面向对象程序设计语言以下简称语言和平台的总称。由和同事们共同研发,并在年正式推出。由四方面组成编程语言类文件格式虚拟机和应用程序接口。平台由虚拟机,简称和应用编程接口,简称构成。应用编程接口为应用提供了个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装个平台之后,应用程序就可运行。平台已经嵌入了几乎所有的操作系统。这样程序可以只编译次,就可以在各种系统中运行......”。
6、“.....平台是基于语言的平台。摘自百度百科基本介绍是个开放源代码的基于的可扩展开发平台。就其本身而言,它只是个框架和组服务,用于通过插件组件构建开发环境。幸运的是,附带了准的插件集,包括开发工具,。虽然大多数用户很乐于将当作集成开发环境来使用,但的目标却不仅限于此。还包括插件开发环境这个组件主要针对希望扩展的软件开发人员,因为它允许他们构建与环境无缝集成的工具。由于中的每样东西都是插件,对于给提供插件,以及给用户提供致和统的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。摘自百度百科网络爬虫模型的总体设计网络爬虫总体设计根据本网络爬虫的概要设计本网络爬虫是个自动提取网页的程序,根据设定的主题判断是否与主题相关,再根据已下载的网页上继续访问其它的网页,并将其下载直到满足用户的需求。设计基于多线程的网络爬虫。通过将待爬取列表对应的的网页代码提取出来。提取出所需要的信息并且通过算法判断网页是否和设定的主题相关。广度优先搜索,从网页中个链接出发......”。
7、“.....访问完成后,再通过递归算法实现下层的访问,重复以上步骤。总的来说爬虫程序根据输入获得任务列表,即初始种子,把初始种子保存在临界区中,按照广度搜索运算法搜索抓取网页并提取返回到临届区中,通过判断主题相关度算法判断相关度,取出不相关网页从而使整个爬虫程序循环运行下去。处理抽取通过观察研究代码,我们可以知道。代码中,页面之间的跳转,关联是通过标签来实现的。我们需要获取代码中的,就可以通过寻找标签来达到目的。通过观察得知,般标签是以这样的形式出现的。但是不同的网站后面的内容有所不同。比如这样情况,我们就可以通过截取双引号之间的内容来获取如果是这种情况,我们就需要截取单引号之间的内容来获取或者有些是,我们需要以等号为开始标记,而这种情况通常结尾是空格或者符号。为了加快抽取速度,我们可以采用第三方类库,进行抽取。解析截取出来的字符串,可能为相对地址或者绝对地址。所以需要判断为绝对地址,还是相对地址。相对地址需要先转化为绝对地址,再进行过滤......”。
8、“.....或者为设置连接超时生成对象并设置参数设置请求超时设置请求重试处理执行请求判断访问的状态码,处理响应内容读取为字节数组根据网页生成保存时的文件名根据响应类型生成文件路径根据生成的文件路径保存文件提取该类主要封装了分析网页并提取的方法。其中核心代码访问,将对应网页封装成个对象通过方法提取网页中的根据正则表达式,筛选出符合规则的有效类该类封装了网络爬虫的主要工作流程。主要代码如下。当问访问的队列为空,或访问的网站数量达到指定的数量退出线程。新的未访问的入队,数据库操作前面已经介绍了数据库表的设计,本节找介绍数据库操作的逻辑。对于数据库操作有套相对固定的流程,般如下首先注册和相关数据库的驱动比如数据库创建连接对应数据库的是数据库的然后创建发射源也就是通过发射源向数据库传递语句把查询的结果放在个记录集中如果获取相应记录的字段值记录集的指针指向第条上方获取第条必须下移比如说表中有个字段获取它的值是这样的其中的参数为要获取字段的字段名......”。
9、“.....为了提高系统效率并不是每条记录都存入数据库。只有当两个队列中的元素个数达到定数量时才进行数据库操作。默认的时当待访问的达到,已经访问的达到,或者待访问数量小于的时候才进行数据库操作。主要代码如下待访问的达到已经访问的达到待访问数量小于系统运行测试系统运行测试以为初始。设置工作线程数量为默认数为,最大访问量无限制,然后用爬虫程序去运行。程序的启动界面如图图程序起始界面开始时使用默认参数,运行工作线程数为,访问数量不限制。图程序运行截图是点击开始按钮程序开始运行,我们可以观察到程序刚开始运行时,待访问的队列只有个网址,所以除号线程意外都暂停的段时间。当程序运行段时间以后此种情况将大有改善。图是运行段时间过后的情况,我们可以看到,所有工作线程都已经开始工作图程序运行截图二通过截图我们可以观察到线程的运行顺序是不可预测的,这也增大了我们编程的难度。尤其是到对临界资源进行操作时,更应该小心。图程序运行截图三图为点击暂停按钮后,程序退出运行的情况......”。
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。