搜索引擎爬虫数据抓取.docx

上传人:b****6 文档编号:3661351 上传时间:2022-11-24 格式:DOCX 页数:56 大小:1.92MB
下载 相关 举报
搜索引擎爬虫数据抓取.docx_第1页
第1页 / 共56页
搜索引擎爬虫数据抓取.docx_第2页
第2页 / 共56页
搜索引擎爬虫数据抓取.docx_第3页
第3页 / 共56页
搜索引擎爬虫数据抓取.docx_第4页
第4页 / 共56页
搜索引擎爬虫数据抓取.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

搜索引擎爬虫数据抓取.docx

《搜索引擎爬虫数据抓取.docx》由会员分享,可在线阅读,更多相关《搜索引擎爬虫数据抓取.docx(56页珍藏版)》请在冰豆网上搜索。

搜索引擎爬虫数据抓取.docx

搜索引擎爬虫数据抓取

简单搜索引擎模型

ASimpleScratchofSearchEngine

作者

史春奇,

搜索工程师,

中科院计算所毕业,

chunqi.shi@

计划:

1,需求迫切07/06完成

2,搜索引擎简单模型07/08完成

3,信息导航模型07/16完成1/3数据抓取07/30预处理

4,商家推广模型

5,未来

本文是学习搜索引擎的涂鸦草稿,高深读者请拐弯到:

(北大搜索引擎小组--信息检索指南)

第一章需求迫切

之前说过,搜索引擎是互联网大爆炸后的新生事物,他的成功来源于两个方面高度发展,一个是泛信息化,一个是泛商品化。

一)泛信息化

分为两个方面,一方面是信息的类型呈百花齐放,另一方面是信息的数量呈海量增长。

1,信息种类繁多。

大家切身感受到的是多媒体娱乐和社交联系在互联网上变得明显的丰富起来。

信息种类繁多不可避免会导致搜索引擎的种类繁多起来。

而搜索引擎种类繁多这一点,你可以看一下Google,Baidu提供的服务是多么繁多,你就知道了。

参考XX更多(Google更多(.hk/intl/en/options/),这些还不包括实验室(Lab)的产品。

我们换个角度看这个问题,看看现在已经有多少种搜索引擎来满足信息繁多的各种需求了,Wiki的搜索引擎列表(http:

//en.wikipedia.org/wiki/List_of_search_engines)有一个分类,显示了10种类型,分别是,1)论坛,2)博客,3)多媒体(音乐,视频,电视),4)源代码,5)P2P资源,6)Email,7)地图,8)价格,9)问答信息,10)自然语言。

我们知道信息爆发都是由需求带动的,那么目前有多少需求已经有搜索引擎在满足了呢?

下面列出了14种类型,分别是,1)普通[知识],2)地理信息,3)会计信息,4)商业信息,5)企业信息,6)手机和移动信息,7)工作信息,8)法律信息,9)医疗信息,10)新闻信息,11)社交信息,12)不动产信息,13)电视信息,14)视频游戏信息。

2,信息海量增长。

类似,我们从搜索引擎的发展,反向来看信息增长。

搜索引擎的索引量是选择收录入库的网页数,肯定小于或者远小于互联网的信息量。

最早Yahoo是人工编辑的目录索引,就几万和几十万的级别。

到Infoseek,Google早期等的几百万的索引量。

到Baidu早期的千万、上亿的索引量。

到现在Google等上千亿的索引量。

如果你看一个网页要1秒钟,1000亿网页要看3171年,而且不吃不喝,一秒不停地看。

如果你是愚公世家,你的祖辈在大禹治水的时候就开始看网页,到现在你还没看完。

因此草根(Grassroots)用户需要搜索引擎来满足它们的信息的导航,草根用户追求免费,快捷和有效的服务。

二)泛商品化

也分为两个问题,一方面,满足新需求的商品种类繁多。

另一方面,满足老需求的新商品的种类繁多。

现在有很多新产品,你如果不推广,很多有需求的人都找不到你,或者找到的不是你。

举例啊,如果你不看新闻广告,你都不知道有人在给狗狗举行隆重的葬礼,那么你知道去那里找个满意的祭司么?

有人告诉你说网上。

那么你知道哪家的服务好么?

又有人告诉你说找论坛看评论。

同样,你了解商家怎么推销自己的产品么?

他们可以选择在网上打广告,可以找搜索引擎帮助推广。

现在产品的确太多了,商家太多了,让你都不知道何去何从。

就说最古老的饮食,现在遍地是餐饮,选哪个好了?

如果某商家嫌客户少,想打折推广。

古老的方式是挂大旗,发传单。

而今你要想让更多的人看到,可以去互联网花钱推广,可能花同样的钱,被推广的对象还是有迫切需求的潜在用户。

这样你的广告费用花的会更有效果。

而搜求引擎广告,满足信息查询需求的同时,只要搜索的用户足够多,就会有很多提供服务的商家想请你帮忙做推广,满足他们脱颖而出的广告需求。

因此商家需要搜索引擎来满足它们的广告的推广,商家追求用户和利润是愿意付费的。

第二章导航模型--草根需求信息

信息爆炸给搜索带来人气,商品爆炸迫使商家追逐人气,两者的结合使得搜索引擎成为互联网的宠儿。

第一节最直观简单模型

在谈及基础前,还有些基础,插曲一下:

1.什么是顺序文件(SequentialFile),什么是随机文件(RandomFile),两者的优缺点?

2.什么是索引(Index),什么是哈希(Hash),两者有关联么?

3.什么是计算机的金字塔存储系统(StoragePyramid),为啥是金字塔状?

那寄存器(Register),高速缓存(Cache),内存储器(InternalStorage),外存储器(ExternalStorage)等分别有什么优缺点?

在理想的场景下,搜索引擎能够对互联网内容进行理解,并且对用户的提问也能够理解,然后直接给出用户需要的结果。

但是目前计算机技术的发展,搜索引擎还只能对互联网的页面进行索引(Index),然后对用户提供的查询词进行分解成关键词(Keywords/Term)。

然后完成基于关键词的搜索(Retrieval)。

这样就搜索引擎就需要首先划分成“网页获取”,“建索引”,“查询”,这三个大模块,使得数据流从“互联网”保存到“网页库”,然后到“索引库”,再到检索服务器,最后流向用户,见图(1.1)。

网页获取:

能够及时地,全部地获取(复制)整个互联网的所有的网页。

我们知道互联网首先已经是海量的,其次互联网还在动态变化,每一秒都在变化(增更减)。

假如我们的存储足够大,读取互联网数据的能力足够快。

那么每天将互联网全部复制一次,就可以满足要求。

显然这是不可能实现的。

那么怎么抓取才能尽可能完整地(entirely),及时地(timely)获得互联网数据呢?

建索引:

将全部网页,按关键词索引。

由于文档的数量非常大,并且文档的价值不一样。

要是能将所有新获取的页面,在每天抓完之后,当天就能索引完成(fastindexing),并且索引的访问快速(efficientaccessibility),而且索引的存储空间(smallstoragespace)较小。

并且索引的全部是有意义(valuable)的页面。

显然有点像又要马儿好,又要马儿不吃草,是难以完美地实现的。

那么如何高效地进行索引成为这个阶段的核心问题。

高效地索引成为这个阶段的核心目标。

查询:

对用户的查询词分解成索引能处理的关键词(Terms),其次查找匹配的文档(resemblance),再将文档排序(ranking)后返回给用户。

图(1.1),最直观数据流模型

网页库:

保存网页数据,或保存成自定义结构化数据,或者文本块。

为了提高读写性能,一般会顺序保存。

为了增加空间利用率,很可能进行压缩写入,解压读出。

当然网页的相关属性也会保存到网页库,为的是流水线处理,尽量减少读写(IO)次数,从而减少处理时间和磁盘/闪盘的损耗。

因为互联网的网页数量实在太大了。

索引库:

索引库直观上从存储上来说可以是磁盘/闪盘上的一组索引文件。

但是要真正完成索引机制—快速查询或者检索,必然要对应到内存的数据管理。

因此会有对应的索引架构,对索引数据进行金字塔式地管理。

一般是内存CACHE->内存高层索引结构->内存底层索引结构->磁盘/闪盘高层索引结构->磁盘/闪盘文件,这样一个类似的金字塔结构(PyramidHierachy)。

并且为了进一步提高效率,会采用多机并发,很可能是集群(Cluster)或者分布式(Distributed)的架构。

另外从索引机制上来看,目前主要是倒排索引(InvertedIndex)和顺序(Sequential)或者哈希(Hashing)正排索引的综合体。

倒排索引做到高效地检索,正派索引可以在保证效率的前提下,极大地减小倒排索引的索引内容的大小。

因此很是一个综合体架构。

检索服务器:

直观上来看,检索服务器做到人机WEB服务接口。

因此可能采用MVC(Model-View-Controller)的模型来剥离WEB和数据(DATA)。

另外检索服务器又要做到查询比较,涉及到相似性(Resemblance)和排序(Rank)的机制,也就是说在WEB和DATA之后,必然还有一层进行检索(Retrieval)功能,因此,检索架构很可能或者至少是一个Web-Data-Retrieval的三层架构。

而为了分流用户群和增加安全性(不要把所有鸡蛋放到一个篮子里),也会结合采用分流并行的架构。

有了数据流模型,不可避免要进行数据处理,数据处理是搜索引擎公司(Google,Baidu,Yahoo等)的核心竞争力,会涉及到复杂的算法和架构。

另外,又是研究领域的热点和难点,会有TREC,SIGIR,WWW等很多会议对各方面进行创新。

同时,开源界也在发力。

首先,数据处理大体以用户可见与否,分成后端和前端两个部分。

将网页库和索引库相关联的部分,称为后端。

而和互联网与查询词相关联的部分称为前端。

后端和信息检索(InformationRetrieval)领域更贴近。

前端和WEB技术(WebTechnology)更贴近。

自此,开始慢慢学习后端模型,这是看不见得的竞争力,见图(1.2)。

完成“数据获取”的数据处理模型被称为爬虫Spider,从“互联网”获取数据,更新到本地“网页库”的核心程序被称为Spider或者Crawler。

一方面,Spider和“互联网”之间要通过Schedule来进行数据获取。

另外一方面,Spider又要将数据Update到“网页库”。

完成“建索引”的数据处理模型被称为索引器Indexer,一方面,Indexer获取“网页库”的数据后,要进行一次预处理或者清洗,这也是所有IR领域的常见做法,为了简化处理和优化效果。

另外一方面,Indexer又要Analyze数据,将结果保存到索引库。

索引库可以是结构化数据结构,也可以用数据库(DataBase)来保存。

完成“查询”的数据处理模型被称为检索器Retrieval,一方面,Retrieval要决定读取“索引库”的哪些索引数据。

另一方面,Retrieval要根据Query的相关性(Resemblance)来进行排序(Rank)。

因此这是一个决策机制。

打个简单比喻,如果前面所有的处理是身体的话,那么这就是大脑。

说句土话,有健康的身体才能为大脑供血,有牛掰的大脑才能理解用户的需求。

图(1.2),最直观数据处理模型

第二节互联网简单模型

管中窥豹,略见一斑。

由于信息获取的便捷性,和大家的切身体会,选择中国互联网来讲述简单见解。

这里纯属草根见识,有专业需求的,可以参考《ModelingtheInternetandtheWeb.ProbabilisticMethodsandAlgorithm》是形式化描述互联网模型的极好的一本书。

豆瓣介绍:

幻灯片:

http:

//ibook.ics.uci.edu/slides.html

PDF下载:

http:

//bib.tiera.ru/DVD-010/Baldi_P.,_Frasconi_P.,_Smyth_P._Modeling_the_Internet_and_the_Web._Probabilistic_Methods_and_Algorithms_(2003)(en)(285s).pdf

互联网(Internet)最重要的是互联,对应的是内联网Intranet或者说局域网LAN。

还记得我当时做双绞线RJ-45的水晶头,然后把几个机器链接起来,能够相互之间拷贝电影,打红警,就很开心。

当时还买书看什么是对等网,星型网络结构。

后面再学ISO七层模型和TCP/IP四层模型等等才知道互联是如何而来的。

自我感觉互联网(Internet)中的互联和搜索引擎的所利用的网页互联,还是不太一样。

互联网(Internet)和局域网(Intranet)和LAN的互联,强调的是物理层上的互联,是TCP/IP协议的描述。

而搜索引擎所利用的互联,某种意义上是强调的万维网(WorldWideWeb)的互联,是HTTP协议中的超链(hyperlinks)互联。

或许也是计算机领域Net和Web的区别来着。

万维网(WWW)是网站(Website)的互联。

如果将一个网页看成承载信息的一个单元,那么网站可以看成承载一类信息的单元。

而WWW是不同类信息的互联,是信息的海洋。

我体会较早的上网是1999年开始的Chinaren校友录和263电子邮箱。

可以从同学谈话的页面点击跳到同学照片的页面。

正是这种简单的点击跳转,互联了WWW,所以你看到大部分站点的域名是WWW开头的,表明那是一个Web服务器。

每个网站都有一个首页,表示这是入口,从这个入口,应该可以访问整个网站。

随着互联网的发展,网站之间的点击跳转成为必然,起初可能是你自己收藏链接,慢慢一些门户网站成为大家访问互联网的入口,从这里你应该可以访问整个万维网,到如今搜索引擎在这方面起的作用越来越大。

其实搜索引擎也是在利用网站之间的这种点击跳转的互联信息,只不过大大减少了你查看点击跳转后是页面否为目标页面的尝试和时间代价。

1.发展历史

《中国互联网发展大事记》--中国互联网络信息中心(CNNIC),从中选择了草根基本可以感受到的16个大事。

1.1994年4月20日,NCFC工程通过美国Sprint公司连入Internet的64K国际专线开通,实现了与Internet的全功能连接。

从此中国被国际上正式承认为真正拥有全功能Internet的国家。

2.1994年5月,国家智能计算机研究开发中心开通曙光BBS站,这是中国大陆的第一个BBS站。

3.1998年6月,CERNET正式参加下一代IP协议(IPv6)试验网6BONE。

4.1999年7月12日,中华网在纳斯达克首发上市,这是在美国纳斯达克第一个上市的中国概念网络公司股。

5.2000年12月12日,人民网、新华网、中国网、央视国际网、国际在线网、中国日报网、中青网等获得国务院新闻办公室批准进行登载新闻业务,率先成为获得登载新闻许可的重点新闻网站。

6.2001年1月1日,互联网"校校通"工程进入正式实施阶段。

7.2001年7月9日,中国人民银行颁布《网上银行业务管理暂行办法》。

8.2001年12月20日,中国十大骨干互联网签署了互联互通协议,这意味着中国网民今后可以更方便、通畅地进行跨地区访问了。

9.2004年2月3日至18日,新浪、网易和搜狐先后公布了2003年度的业绩报告,首次迎来了全年度盈利。

10.2004年5月13日,网络游戏公司盛大网络正式在美国纳斯达克上市,这是中国网络游戏在纳斯达克证券市场首次亮相。

11.2004年6月16日,即时通讯服务提供商腾讯公司正式在香港挂牌上市。

12.2005年8月5日,XX公司在美国纳斯达克挂牌上市。

13.2005年,以博客为代表的Web2.0概念推动了中国互联网的发展。

Web2.0概念的出现标志互联网新媒体发展进入新阶段。

在其被广泛使用的同时,也催生出了一系列社会化的新事物,比如Blog,RSS,WIKI,SNS交友网络等

14.2006年12月18日,中国电信、中国网通、中国联通、中华电信、韩国电信和美国Verizon公司六家运营商在北京宣布,共同建设跨太平洋直达光缆系统。

15.2007年,腾讯、XX、阿里巴巴市值先后超过100亿美元。

中国互联网企业跻身全球最大互联网企业之列。

16.截止2008年6月30日,我国网民总人数达到2.53亿人,首次跃居世界第一。

7月22日,CN域名注册量以1218.8万个首次成为全球第一大国家顶级域名。

从《大事记》简单来看,中国互联网走过了,国际互联,BBS,新闻网,校园网,门户网,网络游戏,即时通信,搜索引擎,WEB2.0,高速互联,全民上网。

1.互联网刚开始的突破是取代印刷页,社交功能还非常低级,人们以获取单一新信息为主。

2.门户网站标志着信息爆炸(半有序)的初级阶段已经到来,人们求助于门户来获取综合信息。

3.网络游戏和即时通信的阶段标志着互联网承载了人与人之间关系的初级阶段。

4.搜索引擎标志着信息爆炸(半有序)的高级阶段已经到来,人们求助于搜索来获取任何信息。

5.WEB2.0时代标志着互联网成为人们生活的不可或缺的一部分。

一句话,来简单回顾互联网发展特征,内容站=>导航站=>参与站=>生活站。

2.大陆互联网现状

既然互联网革命性地改变了人们获取信息的方式。

那么,就从信息的角度出发来观察互联网。

信息定义为事物存在的方式和运动状态的表现形式。

来主要观察一下信息的载体,信息随时间的变化情况,信息的数量和质量。

对应到互联网,网页的构成情况,页面的更新周期,网页的数量和质量。

根据《中国互联网络发展状况统计报告(2010年1月)》,中国互联网络信息中心(CNNIC)。

,后面简称“统计报告”。

我们可以获取到部分信息:

包括页面编写语言,页面更新周期,页面数目(静态/动态)。

《统计报告-附表11》,可以看到静态页面(html/htm),半静态页面(shtml),动态页面(php,asp,jsp,aspx)的大致比例是3:

1:

5的样子。

可以看到超半数信息已经由动态网页在承载。

《统计报告-附表10》,按更新周期分类的网页情况,75%的信息在半年内将会更新,55%的信息在一个季度内更新,30%的信息会在一个月内更新,8%的信息在一周内更新。

那么估计会有1%以上的信息会在一天内更新。

《统计报告-表5》可以看到互联网的网页数目336亿,已经在百亿~千亿的级别之间了。

《统计报告-附表14分省网页字节数》可以看到国内平均页面大小是30K左右,网页总大小在964太(Terabytes)数据。

一句话,目前看到的是动态链接占有很大比例的,变化很快的,数据很大的互联网。

《统计报告-附表11》按照后缀形式分类的网页情况

网页后缀形式

比例

.html

20.1%

htm

6.5%

/

2.1%

shtml

8.7%

asp

12.6%

php

22.2%

txt

0.0%

nsf

0.0%

xml

0.0%

jsp

1.0%

cgi

0.2%

pl

0.0%

aspx

6.1%

do

0.5%

dll

0.0%

jhtml

0.0%

cfm

0.0%

php3

0.0%

phtml

0.0%

其他后缀

19.7%

合计

100%

《统计报告-附表10》按更新周期分类的网页情况

网页更新周期

比例

一周更新

7.7%

一个月更新

21.2%

三个月更新

28.1%

六个月更新

18.8%

六个月以上更新

24.3%

合计

100%

《统计报告-表5》中国网页数

单位

2008年

2009年

增长率

网页总数

16,086,370,233

33,601,732,128

108.88%

静态网页

7,891,388,272

18,998,243,013

140.75%

占网页总数比例

49.06%

56.54%

——

动态网页

8,194,981,961

14,603,489,115

78.20%

占网页总数比例

50.94%

43.46%

——

静态/动态网页的比例

0.96:

1

1.3:

1

——

网页长度(总字节数)

KB

460,217,386,099

1,059,950,881,533

130.32%

平均每个网站的网页数

5,588

10,397

86.06%

平均每个网页的字节数

KB

28.6

31.5

10.30%

《统计报告-附表14》分省网页字节数

总页面大小(T)

平均网页大小(K)

北京

289.5

32.2

浙江

119.4

35.2

广东

124.1

26.6

山东

20.7

29.6

福建

40.4

29.7

上海

93.5

30.6

辽宁

12.8

31.8

湖南

8.1

30.5

重庆

7.2

27.3

天津

31.3

33.4

四川

18.9

26.5

江苏

61.8

30.8

甘肃

1.1

28.1

河南

30.0

27.7

河北

22.8

33.0

江西

8.0

26.5

云南

2.4

27.4

湖北

18.4

27.5

陕西

12.1

38.9

青海

0.2

29.5

广西

8.8

34.6

安徽

10.9

27.2

黑龙江

7.2

31.9

吉林

2.7

31.2

海南

5.5

35.5

内蒙古

1.2

28.6

新疆

0.2

26.1

贵州

1.2

24.6

山西

2.1

25.1

宁夏

1.2

26.5

西藏

0.1

43.9

全国

964.0

30.8

质量是个难以简单说明的啦,是和需求密切相关的东西。

需求是和人密切相关的东西。

人相当复杂,因此导致质量会比较复杂,还是从草根需求观望下下罢了。

3.草根需求

作为草根的我,会在网上看看新闻和时事评论,在自己的博客上发点东西,闲暇时上个开心,去好友主页看看。

而我的表弟,一个在读大学生,则会不停地折腾QQ,沉迷于魔兽世界,疯狂的优酷电影。

我的叔叔,一个初中教师,则每次打开,都是hao123主页,然后去看看新闻,看看财经频道,偶尔在小说网站逗留。

从《统计报告-图8》来看,三个不同年龄段几乎占了80%的用户比例,所以上述的三个的草根还是代表些什么的。

按这些草根的需求来看,大致分为:

资讯获取,大站导航,草根参与,网络游戏。

可以对应大致的质量要求是内容准确,傻瓜指引,民主生活,大侠体验。

《统计报告-图8》网民年龄结构对比

第三节网页抓取简单模型

世界上第一个网络爬虫Spi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 中医中药

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1