8.2.1 网络爬虫

1.概念与原理

网络爬虫(又称为网络蜘蛛、网络机器人,在FOAF社区中更经常称为网页追逐者)是按照一定的规则自动抓取万维网信息的程序或脚本。另外一些不经常使用的名字还有写蚁、自动索引、模拟程序或者蠕虫。它的定义有广义和狭义之分。狭义上指遵循标准的HTTP协议,利用超链接和Web文档检索方法遍历万维网的软件程序;而广义上则凡是连循HTTP协议检索Web文档的软件都称为网络爬虫。

网络爬虫是一个功能很强的自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎抓取系统的重要组成部分。整个搜索引擎系统主要包含4个模块,分别为信息搜索模块、信息索引模块、信息检索模块和用户接口部分,而网络爬虫便是信息搜索模块的核心。

如果把互联网比作一个大昆虫织的网,网络爬虫就是在这张大网上爬来爬去的爬虫。网络爬虫的主要目的是将互联网上的网页下载到本地形成一个互联网内容的镜像备份。

网络爬虫可以使用多线程技术,以具备更强大的抓取能力。

可以通过使用DNSCache技术减少爬虫对DNS的访问频率,避免DNS成为网络瓶颈,提高抓取速度。

通过Java技术,以多线程方式可以大大增强爬虫抓取网页的效率。对于搜索引擎来说要想通过网络爬虫搜索到整个网络的页面是几乎不可能的,主前

现有的手段无法搜索到所有网站的网页,容量再大的搜索引擎系

页,这是一个技术瓶预问题;

是存储问题和技术处理问题,比如

100KB(其中包含图片),目前根据非官方的统计数据互联网

庞大的网页再乘以网页的大小,对于任何搜索引擎来说都是 个海量的数

网络爬虫还要完成信息提取任务,从抓取的网页中提取新围

对于MP3、图片、Flash等各种不同内容,要实现自动识别、自动分示员

MP3文件要包含的文件大小、下载速度等属性),因为网页在网站内右

络爬虫还要根据不同网页级数来抓取信息,网络爬虫的设计需能够自

级数

2.系统架构

在网络爬虫的系统架构中,主过程由控制器、解析器、资源库3部分组成

(1)控制器的主要工作是负责给多线程的各个爬虫线程分配工作任务

(2)解析器的主要工作是下载网页,进行页面的处理,主要是将一些JavaS签、CSS代码内容、空格字符、HTML标签等内容处理掉,爬虫的基本工作是由析器完成

(3)资源库用来存放下载到的网页资源,一般采用大型的数据库存储,如Oracl库,并对其建立索引 数报

3.工作流程

网络爬虫的工作流程如图8.1所示,具体说明如下:

(1)选取一部分精心挑选的种子URL。

(2)将这些URL放入待抓取URI队列

(3)从待抓取URL队列中取出待抓取的URL,解析DNS,得到主机的IP,并将UR对应的网页下载下来,存储到已下载网页库中。此外,将这些UR1.放进已抓取URL队列

(4)分析已抓取URL队列中的URL,分析其中的其他URL,并且将这些新的URL入待抓取URL队列,从而进入下一个循环

种子URL 谈取URL

DNS解析

网页下载

L下载网页库

-将已下载URL放进

已抓取URL队列

待抓取URL

抽取出新的URL放入持抓取URL队列已抓取URI

图8.1 网络爬虫的工作流程

网络爬虫是拉心

远搜索引擎整个产业司

可能和处理理

通常网络爬虫从

始,获得初始网页上的

或若干个初始网面

URI

e,不断从当前页面

朝起,在抓取回

抽取新的URI放入待抓取

R队列,直到满足系统的停止条件,如国

财络爬虫各个部分的主要功能如下

(1)页面采集模块

该模块是爬虫和因特网的接

,主要作用是通过各种Web协议(一般以日

自P为主)完成对网页数据的采集,保存后将采集到的

国交给后续模块做进一步处理,其过程类似于用

是用消觉器打开网页,保存的网页供其他后续模块处

系,例如页面分析、链接抽取

(2)页面分析模块。该模块的主要功能是对页面 否

采集模块采集的页面进行分析,提取其中满足用户要求

的超链接,加入超链接队列中。页面链接中给出的 满足停止条作

CRL一般是多种格式的,可能是完整的包括协议、站点

和路径的,也可能是省略了部分内容的,还可能是一个 结束

相对路径。所以为处理方便,一般进行规范化处理,先

将其转化成统一的格式。 图 8.2网络爬虫流程图

(3)链接过滤模块。该模块主要是用于对重复链接和循环链接的过滤,例如,相对路经需要补全URL,然后加入到待采集UR1.队列中,此时,一般会过滤掉队列中已经包含的URL以及循环链接的URI..

(4)页面库。用来存放已经采集下来的页面,以备后期处理

(5)待抓取UR1.队列。从采集网页中抽取并进行相应处理后得到的URL,当URL为空时爬虫程序终止

(6)初始URL。提供URI种子,以启动爬虫.

4. 抓取对象

网络爬虫的抓取对象可以分为以下4类:

(1)静态网页。网络爬虫在互联网上从一个网站的初始网页开始,获得网页上的链接,在抓取过程中不断获得新的链接,直到达到系统指定的方式才会停止。

(2)动态网页。先通过程序分析一些非静态网页的参数,按一定的规则对所有要抓取页面的链接进行整理,程序只会抓取这些特定范围内的网页。

(3)特殊内容。比如RSS、XML数据,由于情况特殊,需特殊处理。例如,新闻的滚动页面需要爬虫不停地监控扫描,发现新内容马上就抓取。

(4)文件对象。目前网页上会有各种类型的文件,如图片、MP3、Flash、视频等文件,这些都需要系统用一定的方式处理,例如,视频被抓取后,要知道其类型、文件大小、分辨率等

5.抓取策略

网络爬虫在执行搜索任务时会采取一定的抓取策略,每种策略的抓取方式都不行的效率也不一样。以下是常用的抓取策略

1) 深度优先策略

对于一些大型网站和以静态网页为主的抓取内容,采取深度优先策略抓取,以便在最时间内获得最大量的内容

深度优先策略是在开发爬虫早期使用较多的方法,它的目的是要达到被搜索结构的时节点(即那些不包含任何超链接的HTMI.文件),采取深度抓取方式的时候,搜索引擎公从网页的起始页开始,一个链接一个链接地跟踪下去,直至把这条线路追查完毕,然后再名向另一个网页线路,如此不停地搜索循环下去,深度优先搜索沿着HTM1.文件上的超部接走到不能再深人为止,然后返回到某一个HTM1.文件,再继续选择该HTMI.文件中的其他超链接。当不再有其他超链接可选择时,说明搜索已经结束。

这种策略的优点是能遍历一个Web站点或深层嵌套的文档集合,缺点是因为Web结构相当深,有可能造成一旦进去再也出不来的情况发生。

对图8.3所示的网页结构使用深度优先策略抓取的顺序为:A-F-G、E-H-1、B、C.DB G

A F 1

E H

图8.3 网页结构示例

2)广度优先策略

对于一些动态网页或小型网站,采取广度优先策略抓取,搜索引擎会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页,在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索,逐层进行搜索。这是最常用的方法,因为这个方法可以让网络爬虫并行处理,提高其抓取速度,广度优先搜索策略通常是实现爬虫的最佳策略,因为它容易实现,而且具备大多数期望的功能。但是如果要遍历一个指定的站点或者深层嵌套的HTML文件集,用广度优先搜索策略则需要花费较长时间才能到达深层的HTML文件。

对图8.3所示的网页结构使用广度优先策略抓取的顺序为:A-B、C.D、E.F-G.H1

3) 聚焦搜索策略

聚体搜索策略只提出某个特定主题的页面,根据一最好优先原用”进行访问,校速,有地安明要多的与主题相关的页面。聚焦爬生在英国搜索时公对自己搜家到的页要法同你:在解价后给出分值,在对得分进行排序后会思用序表销人到一个队列中,在自己最住优先搜索策略

这种策略按照

个值,并选取评价得分超过该估

e算法计算出的相关度大于给定值的应

的很多相关网页可能被忽略,因为总

具体的应用对搜索策略进行改进,以题出

这无关网页数量降低30%~90%

5)基于IP地址的搜索策略

先赋予爬虫一个起始的IP地址,然后根据P的的

、www地址中的文档,它完全不考虑各文档中指向北品

化点是搜索全面,能够发现那些没被其他文档引用的新文档的信息

搜索。搜索策略目前常见的是广度优先策略和最佳优先搜索策路

6.关键技术分析

1) 抓取目标的定义与描述

(1)针对有目标网页特征的网页级信息 对应网

续还要从中抽取出需要的结构化信息。这种技术在稳定性和数量上占代日城

性差。

(2)针对目标网页上的结构化数据 对应模板级重

出结构化数据信息。这种技术实施快,成本低,灵活性强,但后期维护成本高

2)网页的分析与信息的提取

(1)基于网络拓扑关系的分析算法。根据页面间超链接引用关系对与已知网页有音接或间接关系的对象做出评价的算法,如网页粒度PageRank算法、网站粒度SiteRank算法

(2)基于网页内容的分析算法。从最初的文本检索方法向涉及网页数据抽取、机器学习、数据挖掘、自然语言处理等多领域综合的方向发展。

(3)基于用户访问行为的分析算法。有代表性的是基于领域概念的分析算法,涉及本体论

7.发展趋势

随着网络的不断发展,大量有价值的网页会隐藏在深层网络中,现在的网络爬虫对深层的网页中动态网页和数据库基本上是束手无策的,在现在搜索模式下如何跟上互联网这种发展趋势变得异常重要,深层的网络爬虫研究变得更加迫切。

AMAX技术已在网页中经常被应用到,使用ANJAX的最大优点是网站维护数据可以不必里新整个页面,这样,Web应用程序可以更加快速地回应用户动作,并避免了在网络上发运部些没有改变的信息,这样的无闪局部刷新可以加快网页的刷新速度

随着网络的不断发展,各种多理体信息都出现在网页上,比如海量的图片、动画,要戏擎有应对之策 作随着搜索引擎的发展,各种基于网络的多题(

出技术研究将会成为爬虫研究的新方向

随着对等网络PSP技术的发展,网络不是将所有的压力都分布在服务器端 是叔同看一公用户的计算机上,这样每台客户端的计算机将作为主机完成上传和下数网络成员可在网络数据库里自由搜索、更新、回答和传送数据

人工智能(网络爬虫)相关推荐

  1. python windows自动化 爬虫_Python体系(网络爬虫、人工智能、WEB开发、自动化运维)详细介绍...

    不论你是对Python初出茅庐,还是如指诸掌,这篇文章对你的收获总归还是有的啦,可能只是程度的问题.好了不扯远了,来说正题,下面在分享这套体系前还是要让Python做一下"自我介绍" ...

  2. python网络爬虫工程师薪资-python网络爬虫工程师找工作应该准备什么?

    系统的学习下,下面三本书都不错,另外可以参考下: 2018最佳人工智能数据采集(爬虫)工具书下载​china-testing.github.io Python网络数据采集 /> /> 本书 ...

  3. python与excel结合能做什么-Python网络爬虫与文本数据分析

    原标题:Python网络爬虫与文本数据分析 课程介绍 在过去的两年间,Python一路高歌猛进,成功窜上"最火编程语言"的宝座.惊奇的是使用Python最多的人群其实不是程序员,而 ...

  4. python从零基础到项目实战怎么样-Python 3.x网络爬虫从零基础到项目实战

    ● 案例完整 本书中的所有案例都是通过"理论讲解 + 环境搭建 + 完整代码及分析 + 运行结果"这种完善的结构进行讲解的.此外,复杂的案例配有项目结构图,有难度的案例还分析了底层 ...

  5. python爬虫抓取图片-python网络爬虫源代码(可直接抓取图片)

    在开始制作爬虫前,我们应该做好前期准备工作,找到要爬的网站,然后查看它的源代码我们这次爬豆瓣美女网站,网址为:用到的工具:pycharm,这是它的图标 ...博文来自:zhang740000的博客 P ...

  6. 网络爬虫介绍||为什么学网络爬虫

    网络爬虫介绍 在大数据时代,信息的采集是一项重要的工作,而互联网中的数据是海量的,如果单纯靠人力进行信息采集,不仅低效繁琐,搜集的成本也会提高.如何自动高效地获取互联网中我们感兴趣的信息并为我们所用是 ...

  7. 网络爬虫框架Webmagic

    1 谈谈网络爬虫 1.1 什么是网络爬虫 在大数据时代,信息的采集是一项重要的工作,而互联网中的数据是海量的,如果单纯靠人力进行信息采集,不仅低效繁琐,搜集的成本也会提高.如何自动高效地获取互联网中我 ...

  8. python爬虫与数据分析实战27_Python网络爬虫与文本数据分析

    原标题:Python网络爬虫与文本数据分析 课程介绍 在过去的两年间,Python一路高歌猛进,成功窜上"最火编程语言"的宝座.惊奇的是使用Python最多的人群其实不是程序员,而 ...

  9. 《Python3网络爬虫开发实战(第二版)》上市了!!!!

    " 阅读本文大概需要 5 分钟. " 告诉大家一个好消息:我的好朋友崔庆才老师的<Python3网络爬虫开发实战(第二版)>现在正式上市了!!!! 没错,就是这本: 就 ...

最新文章

  1. 告别AI模型黑盒子:可解释性将是数据科学的下一个“超能力”
  2. oracle11g怎么显示中文,ORACLE11G中PLSQL中文显示乱码、Linux下sqlplus查询中文乱码
  3. 死磕Java并发:J.U.C之AQS:CLH同步队列
  4. HDU5706 GirlCat
  5. java标识符遵循规范
  6. 2014-2015-1学期使用的教材
  7. 工作219:富文本查看 编辑状态显示
  8. 搭建Struts2步骤
  9. Windows rundll32的用法-批处理管理打印机
  10. Google 应用与游戏出海 7 月刊: 创意工具,让应用大放异彩
  11. 【Java】常用的collection、map子类的属性和方法
  12. 计算机网络求校验码,计算机网络课程设计校验码的计算
  13. 最快路由器服务器地址,路由器中radius服务器IP地址要用什么样的IP
  14. 仿uniapp - 时间轴组件
  15. 【02】一个实现h5的拖放的整个过程-魔芋
  16. bootstrap, boosting, bagging
  17. 如何查看你的公网ip?
  18. android 生成kml,Android模拟GPS数据生成kml和nmea文件
  19. Simultaneous Feature Learning and Hash Coding with Deep Neural Networks
  20. Daily record-July

热门文章

  1. EXCEL中将数字日期格式改为日期格式
  2. Chomp game博弈游戏
  3. 松滋历史(2)--高成县为什么这么高光?
  4. ctr 平滑_CTR平滑方法
  5. XMPPFramework开发(四):电子名片
  6. 热式气体质量流量计检定规程_最佳实践:热式质量流量计实际标定的安全性和准确性...
  7. 基于Android实现的锁屏软件APP
  8. 长沙十大情调情侣约会餐厅,你们去过哪几家?
  9. MTK介绍MTK平台介绍
  10. 钟翔平:坚持走手机浏览器架构创新之路