- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于C#的网络爬虫搜索引擎的设计.doc
基于C#的网络爬虫搜索引擎的设计 摘 要:网络爬虫的主要作用是获取互联网上的信息。我们在浏览网页时候所希望获取的信息都可以使用网络爬虫来抓取实现;网络爬虫从互联网上源源不断的抓取海量信息,搜索引擎结果中的信息都是来源于此。本文对基于C#开发的网络爬虫搜索引擎进行了详细的阐述。 关键词:网络爬虫;互联网;数据结构 中图分类号:TP391.3 经过最近这些年的发展,搜索引擎已经改变了信息的获取甚至存储方式。用户不再需要将大量信息存储在终端机上,而是在需要信息的时候直接运用搜索引擎来获取,这样不仅节约了存储空间,也能获取到最新、最准确的数据,从某种意义上来说,由于有了搜索引擎,我们便可以把一些记忆任务交给机器来完成。搜索引擎有运行在大规模云计算的通用搜索引擎,也有一些行业搜索以及网站搜索。通用搜索引擎是大颚,每一只都有自己独立的领地。行业搜索是领头雁,是各行业的旗帜。而网站搜索则像一只只小麻雀,虽小却五脏俱全。无论是哪一种搜索引擎都包含采集数据的爬虫和索引库的管理以及搜索页面展现等部分,而网络爬虫则是开发一个搜索引擎最常用的技术。 网络爬虫(Crawler)的主要作用是获取互联网上的信息。例如,一个医药采购人员需要找到药品行业的有竞争力的厂家和价格等信息;金融公司员工需要找到有潜力的投资公司;媒体行业人士需要找到能够迅速变热的话题;这些都可以使用网络爬虫来抓取实现;网络爬虫从互联网上源源不断的抓取海量信息,搜索引擎结果中的信息都是来源于此。所以,如果我们把互联网比喻成一张覆盖全球的蜘蛛网,那么抓取程序就是在网上爬来爬去的蜘蛛。 网络爬虫需要实现的基本功能包括下载网页以及对URL地址的遍历。为了高效的快速遍历网站还需要应用专门的数据结构来优化。网络爬虫很消耗宽带资源,设计时需要仔细的考虑如何节省网络宽带资源。下面就基于C#语言的网络爬虫而言,进行优化设计。 1 网络爬虫的原理 我们在浏览网页的时候,每一个网页都可以链接到其他网站,那么搜索信息也可以从一个网站开始,跟踪所有网页上的链接,然后就可能遍历整个互联网。 为了更快的抓取到想到的信息,网页抓取首先从一个已知的URL地址列表开始遍历,在搜索引擎中,爬虫程序从一系列子链接中把这些初始网页中的URL提取出来,放入URL工作队列(Todo队列),然后开始遍历所有工作队列中的URL,下载网页并把其中新发现的URL再次放入工作队列,为了判断一个URL是否已经遍历过,需要把所有遍历过的URL放入历史表(Visited表)。遍历的流程如下图: 在抓取的过程中,将要访问的链接和已经访问过的链接分别存储在list中,爬虫从种子站点开始判断,如果有需要遍历的链接,则逐个遍历,在访问了某个链接后,便将该链接从Todo列表中删除,同时增加到Visited列队的尾部,最后再通过正则表达式提取链接。 服务器的名称通过DNS服务器转换成对应的IP地址,即通过DNS取得该URL域名的IP地址,需要选择一个好的DNS服务器,在Windows下DNS解析的问题可以用nslookup命令来解析,如: C:\Users\Administrator 服务器: Address:81 应答: 名称: Address:27 2 网络爬虫的架构 一般网络爬虫软件都由以下几个模块组成: 2.1 保存种子和爬取出来的URL的数据结构 农民会把有生长潜力的农作物籽用作下一季的种子,而技术人员则把一些活跃的网页用作种子URL,例如网站的首页或者列表页,因为在这些页面经常会发现新的链接。通常爬虫都是从一系列的种子URL开始爬取,一般从数据库表或者配置文件中读取这些种子URL。而保存待抓取的URL的数据结构却会因为系统的规模、功能不同有可能采取不同的策略。一个比较小的示例爬虫程序,可能就使用内存中的一个队列,或者是优先级队列进行存储。一个中等规模的爬虫程序,可能使用内存数据库来存储,如果内存不足还可以序列化到磁盘上。但是真正大规模的爬虫系统,是通过服务器集群来存储已经爬取出来的URL,并且还会在存储URL的表中附带一些其他信息,比如说pagerank值,供以后的计算使用。 2.2 保存已经抓取过的URL的数据结构 已经抓取过的URL的规模和待抓取的URL的规模是一个相当的量级。正如我们前面介绍的TODO和Visited,但是,它们唯一的不同是Visited表会经常被查询,以便确定发现的URL是否已经处理过。因此,如果Visited表数据结构是一个内存数据结构的话,可以采用散列表来存储,如果保存在数据库中的话,可以对URL列建立索引。 2.3 页面获取模块 当从种子URL队列或者抓取出来的URL队列中获得URL后,便要根据这个URL来获得当前页面的内容,获得的方法非常简单,就是普通的I/O操作。在这个模块中,仅仅是把URL所指的内容按照二进制
您可能关注的文档
最近下载
- 12 全国生态环境监测专业技术人员大比武理论试题集 第十二章 综合分析 .pdf VIP
- GB51004-2015建筑地基基础工程施工规范.doc VIP
- 致敏物质控制措施检查记录表.docx VIP
- 智慧水利大数据信息化集成服务平台建设综合解决方案.docx VIP
- 城市公共交通规划与运输(1).pptx VIP
- 14 全国生态环境监测专业技术人员大比武理论试题集 第十四章 理论考试试题真题 .pdf VIP
- 2023年南宁市青秀区总工会招聘考试真题.docx VIP
- 烟淄管道干线扩能改造工程 环境影响报告书.pdf VIP
- GB50391-2014:油田注水工程设计规范.pdf VIP
- 资源管理平台系统-技术方案.docx VIP
文档评论(0)