定向网络爬虫 开题报告

更新时间:2024-06-16 19:52:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

山 东 科 技 大 学

本科毕业设计(论文)开题报告

题 目 网络爬虫

定向爬取?脚本之家?文本信息

学 院 名 称 信息科学与工程学院 专业班级 计算机科学与技术2012级2班 学生姓名 包志英 学 号 201201050201 指 导 教 师 赵中英

填表时间:二0一六年三月二十八日

设计(论文) 题目 工程设计 设计(论文) 类型(划“√”) 网络爬虫?定向爬取脚本之家文本信息 应用研究 开发研究 基础研究 √ 其它 一、 本课题的研究目的和意义 本课题的主要目的是设计面向主题的网络爬虫程序,同时需要满足的是具有一定的性能,要考虑到网络爬虫的各种需求。 网络爬虫主体网站的特性。对url进行构造。网络爬虫使用scrapy实现多线程,让爬虫具备更强大的抓取能力和灵活性。网络爬虫要实现对特定主题的爬取。网络爬虫还要完成信息提取任务,对于抓取回来的网页提取出来:新闻、电子图书、行业信息等。对网络爬虫的连接网络设置连接及读取时间,避免无限制的等待。研究网络爬虫的原理并实现爬虫的相关功能。 最终实现的网络爬虫应该能根据设定的主题,从构造的url进行一定数据爬取,并最终得到需要的数据 互联网是一个庞大的非结构化的数据库,将数据有效的检索并组织呈现出来有着巨大的应用前景。搜索引擎作为一个辅助人们检索信息的工具。但是,这些通用性搜索引擎也存在着一定的局限性。不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。为了解决这个问题,一个灵活的爬虫有着无可替代的重要意义。 二、 本课题的主要研究内容(提纲) 本课题研究的内容是如何使网络爬虫灵活高效。 1.如何更具网站主体特性不同构造URL。 2.如何具备更强的抓取能力。 3.如何分辨重复的网页内容。 4.如何确定主题相关性。 5.对于对线程并发的处理。 6.对于缓存和并发请求的处理 7.对反扒机制的应对 8.对于网络时延等的处理。 9.对于数据的存储格式与形式 三、 文献综述(国内外研究情况及其发展) 对于网络爬虫的研究从上世纪九十年代就开始了,目前爬虫技术已经趋见成熟,网络爬虫是搜索引擎的重要组成部分。网络上比较著名的开源爬虫包括Nutch,Larbin,Heritrix。网络爬虫最重要的是网页搜索策略(广度优先和最佳度优先)和网页分析策略(基于网络拓扑的分析算法和基于网页内容的网页分析算法)。 国内外流行的爬虫技术相当多,很多人喜欢基于Python的,也有人喜欢用C#,很多人由于系统集成开发和跨平台的需要倾向于java,我跟喜欢用Python。 就原理来说,爬虫组件都是差不多的,无头浏览器,最能够说明爬虫的特性,它们被设计创造出来,大部分情况是用于自动化测试的。 基于socket的httpclient功能简单,性能强大,特别是在高并发的情况下,而被大家所青睐,特别是搜索引擎中,如果抓取静态页面,httpclient非常适合。 当遇到ajax加载的信息,就需要javascript效果渲染的时候,httpclient就不行了,htmlunit是基于httpclient加入Rhino引擎实现js渲染的无头浏览器,当然包含了httpclient的特性,然而,由于内存泄露的问题,高并发的状态下,并不能很稳定的工作,内存消耗随着程序的运行而不断增大,直到达到jvm分配的上限而崩溃。很多时候,你只能做个权衡,每个webclient使用若干次后就把它回收,然后重新启动一个,这非常影响性能。Rhino对于javascript的支持并不好,实际使用中,会发现各种Exception,很多时候会导致无法渲染出想要的结果,这个htmlunit的又一大缺陷。随着版本的更新,能够渐次解决一些问题,但是好的程序员,还是应该自己读源码来尝试解决问题。

Phantomjs相比于htmlunit,对于js的支持更接近真实的浏览器,但是并发性能差,通过java的exec调用系统命令来启动,更加降低了性能。

此外主流的浏览器都提供了相应的抓取支持,selenium可谓是一个集大成者,包含了上述的所有组件,以WebDriver的形式,适配各种爬虫组件,你可以用它操控浏览器自动抓取,当然,并发和性能的问题依然存在。

爬虫开发的主要问题是性能和反封锁。很多时候,采用高并发高频率抓取数据是可行的,前提是目标站点没有采用任何反爬措施(访问频率限制、防火墙、验证码……);更多时候,有价值的信息,一定伴随着严格的反爬措施,一旦ip被封,什么组件都没戏了。你不得不维护一个代理IP池来解决这个问题,当然,这也带来了代理ip稳定性和速度的问题,这些问题都是无法回避的问题,我们需要针对具体的情况,采用对应的措施,以最大限度的完成爬虫爬取任务。

目前,爬虫的需求呈爆炸式增长的趋势,这是当前各种互联网创新和大数据时代的新常态。火车和八爪鱼等团队看到了这一点,并率先开发了相对完备的爬虫产品,很多用户都在使用,但是更多的用户希望直接把爬虫抓取任务外包出去,因为他们不懂技术,工具的使用需要逾越技术的鸿沟,大部分用户并没有这个逾越鸿沟的打算。我相信像猪八戒这样的技术外包平台会活的越来越好,我也相信各个技术门类会不断聚集,形成相对独立的社区,P2P的社区平台将提供爬虫开发者和爬虫需求者更加通畅的交流渠道。

目前,淘宝等平台上出现很多爬虫服务商,如

http://item.taobao.com/item.htm?spm=a230r.1.14.4.10ZOWj&id=42659198536&ns=1&abbucket=6#detail,这种定制开发的服务,增加了服务商的成本,服务往往是一次性的,满足了一个用户的需求,然而具有相似需求的用户,却很难有机会找到这个服务商,这就是为什么我们需要爬虫信息交流的平台。

我有意建立这样的平台,不管是微博、微信公众号、文章,还是政府门户的信息公开,或者门户网站、新闻社区等媒体,或者其他领域如金融的数据,都可以在平台上找到,也很容易实现供应和需求者的相互匹配。 然而,对于这其中的法律问题,特别是知识产权问题,不甚明了,除了robots协议,很多数据网站都会另外声明其数据使用规范,同时,如大众点评等网站提供的API很难满足分析的需要,就形成了数据被独占而其价值得不到有效开发的不合理现象。 大数据时代,对大数据的分析应当成为一个行业,数据拥有者应该开放数据的分析接口,让数据的价值释放,而爬虫开发者,很多时候是数据分析者(最起码是个数据清洗和筛选者)。他们蒙上了一层神秘面纱,带着一丝黑客气息,法律应当给他们更大的生存空间,让这个有价值的行业创造更大的价值。 四、 拟解决的关键问题 使网络爬虫高效灵活, 在主题网站中尽量全面的爬取信息,并且 能够自动构造URL,递归调用自身,开启多线程快速的爬取,准确提取有效信息,存储到数据库,对于网络延迟的处理,并且能够开启HTTPCHACHE,极大限度的提高爬取速度,伪造代理信息,表单等,让目标网站,认为你是安全的,整合数据信息,并以json格式存储至Mongo,方面各个平台使用,通过脚本程序,迁移到Mysql为依赖关系较强的项目使用,具备可视化显示,以网页的形式有好的显示数据,并提供简单的搜索功能,能将数据简单分类,智能推荐。

本文来源:https://www.bwwdw.com/article/eg03.html

Top