logo资料库

基于Python网络爬虫毕业论文.doc

第1页 / 共71页
第2页 / 共71页
第3页 / 共71页
第4页 / 共71页
第5页 / 共71页
第6页 / 共71页
第7页 / 共71页
第8页 / 共71页
资料共71页,剩余部分请下载后查看
ABSTRACT
第一章  概述
1.1 课题背景
1.2 网络爬虫的历史和分类
1.2.1 网络爬虫的历史
1.2.2 网络爬虫的分类
1.3 网络爬虫的发展趋势
第二章 文献综述
2.1 网络爬虫理论概述
2.2 网络爬虫框架介绍
2.2.1 Scrapy
2.2.2 Xpath
2.2.3 Mongodb
第三章 研究方案
3.1 网络爬虫的模型分析
3.2 URL构造策略
3.3 数据提取与存储分析
第四章 网络爬虫模型的设计和实现
4.1 网络爬虫总体设计
4.2 网络爬虫具体设计
4.2.1 爬取网页
4.2.3 自动构造URL
4.2.4 多线程的实现
4.2.5 伪造头信息和开启HTTPCACHE
4.2.6 数据库设计和存储转换
4.2.7 可视化
$artical
4.2.8 整体流程
第五章  实验与结果分析
5.2 结果分析
总结:综上数据是在较为公平的环境下测试的,但数据量较小,仅代表个人测试。综上数据可得,在多线程与单线
参考文献
Efficient URL Caching for World Wide Web Crawling 
Andrei Z. Broder 
基于网络爬虫的有效URL缓存
山东科技大学信息学院本科毕业论文 摘 要 本课题的主要目的是设计面向定向网站的网络爬虫程序,同 时需要满足不同的性能要求,详细涉及到定向网络爬虫的各个细 节与应用环节。 搜索引擎作为一个辅助人们检索信息的工具。但是,这些通 用性搜索引擎也存在着一定的局限性。不同领域、不同背景的用 户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果 包含大量用户不关心的网页。为了解决这个问题,一个灵活的爬 虫有着无可替代的重要意义。 网络爬虫应用智能自构造技术,随着不同主题的网站,可以 自动分析构造 URL,去重。网络爬虫使用多线程技术,让爬虫具 备更强大的抓取能力。对网络爬虫的连接网络设置连接及读取时 间,避免无限制的等待。为了适应不同需求,使网络爬虫可以根 据预先设定的主题实现对特定主题的爬取。研究网络爬虫的原理 并实现爬虫的相关功能,并将爬去的数据清洗之后存入数据库, 后期可视化显示。 关键词:网络爬虫,定向爬取,多线程,Mongodb
山东科技大学信息学院本科毕业论文 ABSTRACT The main purpose of this project is to design subject-oriented web crawler process, which require to meet different performance and related to the various details of the targeted web crawler and application in detail. Search engine is a tool to help people retrieve information. However, these general search engines also have some limitations. Users in different fields and backgrounds tend to have different purposes and needs, and the results returned by general search engines contain a large number of web pages that users don't care about. In order to solve this problem, it is of great significance for a flexible crawler. intelligent self themes of Web crawler application of construction technology, with the different the site, you can automatically analyze the structure of URL, and cancel duplicate part. Web crawler use multi-threading technology, so that the crawler has a more powerful ability to grab. Setting connection and reading time of the network crawler is to avoid unlimited waiting. In order to adapt to the different needs, the web crawler can base on the preset themes to realize to filch the specific topics. What’s more, we should study the principle of the web crawler ,realize the relevant functions of reptiles, save the stolen data to the database after cleaning and in late achieve the visual display. Keywords:Web crawler,Directional climb,multi-threading,mongodb
山东科技大学信息学院本科毕业论文 目 录 第一章 概述 ............................... 1 1.1 课题背景 ..................................... 1 1.2 网络爬虫的历史和分类 ......................... 1 第二章 文献综述 ........................... 7 2.1 网络爬虫理论概述 ............................. 7 2.2 网络爬虫框架介绍 ............................. 8 第三章 研究方案 .......................... 16 3.1 网络爬虫的模型分析 .......................... 16 3.2 URL 构造策略 .................................19 3.3 数据提取与存储分析 .......................... 19 第四章 网络爬虫模型的设计和实现 .......... 21 4.1 网络爬虫总体设计 ............................ 21 4.2 网络爬虫具体设计 ............................ 21 第五章 实验与结果分析 .................... 37 5.2 结果分析 .................................... 40 参考文献 .................................... 36 致谢 ........................................ 37 附录 1 ....................................... 37 附录 2 ....................................... 47
山东科技大学信息学院本科毕业论文 第一章 概述 1.1 课题背景 网络爬虫,是一种按照一定的规则,自动的抓取万维网信息 的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引, 模拟程序或者蠕虫。 网络检索功能起于互联网内容爆炸性发展所带来的对内容 检索的需求。搜索引擎不断的发展,人们的需求也在不断的提高, 网络信息搜索已经成为人们每天都要进行的内容.如何使搜索引 擎能时刻满足人们的需求。最初的检索功能通过索引站的方式实 现,而有了网络机器人。但是,这些通用性搜索引擎也存在着一 定的局限性。不同领域、不同背景的用户往往具有不同的检索目 的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网 页。为了解决这个问题,一个灵活的爬虫有着无可替代的重要意 义。 1.2 网络爬虫的历史和分类 1.2.1 网络爬虫的历史 在互联网发展初期,网站相对较少,信息查找比较容易。然 而伴随互联网爆炸性的发展,普通网络用户想找到所需的资料简 直如同大海捞针,这时为满足大众信息检索需求的专业搜索网站 便应运而生了。 1
山东科技大学信息学院本科毕业论文 现代意义上的搜索引擎的祖先,是1990年由蒙特利尔大学学 生 Alan Emtage 发明的 Archie。虽然当时 World Wide Web 还未 出现,但网络中文件传输还是相当频繁的,而且由于大量的文件 散布在各个分散的 FTP 主机中,查询起来非常不便,因此 Alan Archie 工作原理与现在的搜索引擎已经很接近,它依靠脚本程序 自动搜索网上的文件,然后对有关信息进行索引,供使用者以一 定的表达式查询。由于 Archie 深受用户欢迎,受其启发,美国 内华达 System Computing Services 大学于1993年开发了另一个 与之非常相似的搜索工具,不过此时的搜索工具除了索引文件 外,已能检索网页。 当时,“机器人”一词在编程者中十分流行。电脑“机器人” (Computer Robot)是指某个能以人类无法达到的速度不间断地 执行某项任务的软件程序。由于专门用于检索信息的“机器人” 程序象蜘蛛一样在网络间爬来爬去,因此, 搜索引擎的“机器 人”程序就被称为“蜘蛛”程序。世界上第一个用于监测互联网 发展规模的“机器人”程序是 Matthew Gray 开发的 World wide Web Wanderer。刚开始它只用来统计互联网上的服务器数量,后来则 发展为能够检索网站域名。与 Wanderer 相对应,Martin Koster 于1993年10月创建了 ALIWEB,它是 Archie 的 HTTP 版本。ALIWEB 不使用“机器人”程序,而是靠网站主动提交信息来建立 自己 的链接索引,类似于现在我们熟知的 Yahoo。 随着互联网的迅速发展,使得检索所有新出现的网页变得越 来越困难,因此,在 Matthew Gray 的 Wanderer 基础上,一些编 程者将传统的“蜘蛛”程序工作原理作了些改进。其设想是,既 然所有网页都可能有连向其他网站的链接,那么从跟踪 一个网 站的链接开始,就有可能检索整个互联网。到1993年底,一些基 于此原理的搜索引擎开始纷纷涌现,其中以 JumpStation、The 2
山东科技大学信息学院本科毕业论文 World Wide Web Worm(Goto 的前身,也就是今天 Overture), 和 Repository-Based Software Engineering (RBSE) spider 最 负盛名。 然而 JumpStation 和 WWW Worm 只是以搜索工具在数据库中 找到匹配信息的先后次序排列搜索结果,因此毫无信息关联度可 言。而 RBSE 是第一个在搜索结果排列中引入关键字串匹配程 度 概念的引擎 最早现代意义上的搜索引擎出现于1994年7月。当时 Michael Mauldin 将 John Leavitt 的蜘蛛程序接入到其索引程序 中,创建了大家现在熟知的 Lycos。同年4月,斯坦福(Stanford) 大学的两名博士生,David Filo 和美籍华人杨致远(Gerry Yang) 共同创办了超级目录索引 Yahoo,并成功地使搜索引擎的概念深 入人心。从此搜索引擎进入了高速发展时期。目前,互联网上有 名有姓的搜索引擎已 达数百家,其检索的信息量也与从前不可 同日而语。比如最近风头正劲的 Google,其数据库中存放的网页 已达30亿之巨。 随着互联网规模的急剧膨胀,一家搜索引擎光靠自己单打独 斗已无法适应目前的市场状况,因此现在搜索引擎之间开始出现 了分工协作,并有了专业的搜索引 擎技术和搜索数据库服务提 供商。象国外的 Inktomi,它本身并不是直接面向用户的搜索引 擎,但向包括 Overture(原 GoTo)、 LookSmart、MSN、HotBot 等在内的其他搜索引擎提供全文网页搜索服务。国内的百度也属 于这一类(注),搜狐和新浪用的就是它的技术。 从这个意义 上说,它们是搜索引擎的搜索引擎。 1.2.2 网络爬虫的分类 网络爬虫种类繁多,如果按照部署在哪里分,可以分成: 3
山东科技大学信息学院本科毕业论文 1,服务器侧:一般是一个多线程程序,同时下载多个目标 HTML,可以用 PHP, Java, Python 等做,一般综合搜索引擎的 爬虫这样做。但是,如果对方讨厌爬虫,很可能封掉服务器的 IP, 服务器 IP 又不容易改,另外耗用的带宽也是较贵。 2,客户端:很适合部署定题爬虫,或者叫聚焦爬虫。做一 个与 Google,百度等竞争的综合搜索引擎成功的机会微乎其微, 而垂直搜索或者竞价服务或者推 荐引擎,机会要多得多,这类 爬虫不是什么页面都取的,而是只取关心的页面,而且只取页面 上关心的内容,例如提取黄页信息,商品价格信息,还有提取竞 争对手 广告信息的。这类爬虫可以部署很多,而且可以很有侵 略性。可以低成本大量部署,由于客户端 IP 地址是动态的,所 以很难被目标网站封锁。 1.3 网络爬虫的发展趋势 目前,大多数的搜索引擎都是基于关键词的搜索引擎。基于 关键字匹配的搜索技术有较大的局限性:首先,它不能区分同形 异义。其次,不能联想到关键字的同义词。 Web 商业化至今,搜索引擎始终保持着网络上被使用最多的 服务项目的地位,然而,随着网上内容的爆炸式增长和内容形式 花样的不断翻新,搜索引擎越来越不能满足挑剔的网民们的各种 信息需求。 搜索引擎的发展面临着两大难题:一是如何跟上 Internet 的发展速度,二是如何为用户提供更精确的查询结果。所以,传 统的引擎不能适应信息 技术的高速发展,新一代智能搜索引擎 作为一种高效搜索引擎技术的在当今的网络信息时代日益引起 业界人士的关注。搜索引擎己成为一个新的研究、开发领域。因 为它要用到信息检索、人工智能、计算机网络、分布式处理、数 4
山东科技大学信息学院本科毕业论文 据库、数据挖掘、数字图书馆、自然语言处理等多领域的理论和 技术,所以具有综合性和挑战性。又 由于搜索引擎有大量的用 户,有很好的经济价值,所以引起了世界各国计算机科学界和信 息产业界的高度关注,目前的研究、开发十分活跃,并出现了很 多值得注意的动向。 目前传统搜索引擎下,百度、谷歌等大厂商垄断了网络索引 市场,因为它们的存在,日益庞大的互联网内容才能突破网络黑 暗状态,变成可知的一个世界。然而,传统搜索引擎并不能支持 定制搜索和信息处理、挖掘,只能以 WEB1.0的形式存在。 可以预见将来互联网信息抓取、挖掘和再处理,将成为人们 越来越多的需求,而满足这种需求的,就是各种各样的爬虫与相 关的信息处理工具。现在网络上流 行的信息采集工具、网站聚 合工具,都是未来新一代爬虫的先驱,甚至已经具备其特点。但 是互联网本身,不管1.0还是2.0,还没有为爬虫时代的到来做好 充分准备。现在流行的 SEO,就是强势搜索引擎条件下对网站结 构产生的影响。爬虫时代到来之后,互联网上会出现专门的信息 站点,就是提供给爬虫看的站点。 传统的网络爬虫技术主要应用于抓取静态 Web 网页,随着 AJAX/Web2.0的流行,如何抓取 AJAX 等动态页面成了搜索引擎急 需解决的问题,因为 AJAX 颠覆了传统的纯 HTTP 请求/响应协议 机制,如果搜索引擎依旧采用“爬”的机制,是无法抓取到 AJAX 页面的有效数据的。 AJAX 采用了 JavaScript 驱动的异步请求/响应机制,以往 的爬虫们缺乏 JavaScript 语义上的理解,基本上无法模拟触发 JavaScript 的异步调用并解析返回的异步回调逻辑和内容。 另外,在 AJAX 的应用中,JavaScript 会对 DOM 结构进行大 5
分享到:
收藏