毕设开题报告及开题报告分析.docx
《毕设开题报告及开题报告分析.docx》由会员分享,可在线阅读,更多相关《毕设开题报告及开题报告分析.docx(8页珍藏版)》请在冰豆网上搜索。
毕设开题报告及开题报告分析
开题报告如何写
注意点
1.一、对指导教师下达的课题任务的学习与理解
这部分主要是阐述做本课题的重要意义
2.二、阅读文献资料进行调研的综述
这部分就是对课题相关的研究的综述落脚于本课题解决了那些关键问题
3.三、根据任务书的任务及文件调研结果,初步拟定执行实施的方案(含具体进度计划)
这部分重点写具体实现的技术路线方案的具体实施方法和步骤了,具体进度计划只是附在后面的东西不是重点
南京邮电大学通达学院毕业设计(论文)开题报告
题 目
基于python的网络爬虫系统的设计与实现
学生姓名
徐亚洲
班级学号
12003426
专业
软件工程
一、对指导教师下达的课题任务的学习与理解
随着网络的快速发展和广泛应用,大数据时代的到来,网络就像一个巨大的数据宝库,如何快速获取其中的数据资源成为亟待完成的新需求。
然而网络上的信息资源大多是无组织并且动态变化的,光靠管理员手工去管理,很难将这些庞大,繁杂的数据进行有效的保存和利用,这就促使了网络爬虫技术的兴起。
网络爬虫源自Spider(或Crawler、robots)等的意译。
网络爬虫的定义有广义和狭义之分,狭义的定义为:
利用标准的http协议,根据超链接和Web文档检索的方法遍历万维网信息空间的软件程序。
广义的定义为:
所有能利用http协议检索Web文档的软件都称之为网络爬虫。
网络爬虫又被称为做网络蜘蛛、网络机器人,主要用于网络资源的收集工作。
是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
网络爬虫已经发展了很多年,并且搜索引擎也是爬虫的一种应用,通过搜索引擎能够更快速的获得有用的数据和信息。
但是,一些通用性的搜索引擎也存在着一定的局限性,通用搜索引擎返回的结果可能包含了大量用户不关心的网页内容,而且通用搜索引擎有限的服务器资源与无限的网络资源之间存在的矛盾进一步加深,还有,就是通用搜索引擎不能支持给据语义的信息提出的查询和搜索。
所以学习网络爬虫有很大的意义。
因此,本课题基于Python编写基本的爬虫系统,用于网路爬虫的入门,为以后的爬虫学习奠定基础。
所以,对于本课题我设计并实现以个关于入门爬虫的系统----基于python的豆瓣网爬虫系统。
二、阅读文献资料进行调研的综述
网络爬虫是一个功能很强大的自动提取网页的程序,它为搜索引擎从万维网下载网页,是搜索引擎的重要组成部分。
它通过请求站点上的html文档访问某一个站点。
它遍历Web空间,不断从一个站点移动到另一个站点,自动建立索引,并加入到网页数据库中。
网络爬虫进入某个超级文本时,利用html语言的标记结构来搜索信息,及获取指向其他超级文本的url地址,可以完全不依赖于用户的干预实现网络上的自动“爬行”和搜索。
本课题需要用MySQL来存取从网页上抓去到的数据,文献[1]讲述了MySQL数据库的入门知识,该,学习该文献能够做到MySQL数据库的基本存取操作,满足本课题的实际操作要求。
文献[2]
和文献[3]讲述了Python的入门教程和Python的编程入门,通过学习文献可以了解Python的基本语法和Python的基本编程方法,对于本课题程序编写,能够拥有大概的思路和想法。
文献[4]中提供了开发了一款支持并行的微博数据抓取工具的基本思路,该工具可以实时抓取微博中指定用户的粉丝信息、微博正文等内容;该工具利用关键字匹配技术,匹配符合规定条件的微博,并抓取相关内容。
并且支持并行抓取信息。
并行爬虫拥有较好的加速比,可以快速抓取数据。
文献[5]基于信息数据分析的微博研究综述[J];研究微博信息数据的分析,在这类研究中,大多数以微博消息传播的三大构件---微博消息、用户、用户关系为研究对象。
以微博消息传播和微博成员组织为主要研究内容,目的在于发祥微博中用户、消息传博、热点话题、用户关系网络等的规律。
基于微博信息数据分析的研究近年来在国内外都取得了很多成果,掌握了微博中的大量特征。
该文献从微博消息传播三大构件的角度,对当前基于信息数据分析的微博研究进行系统梳理,提出微博信息传播三大构件的概念,归纳了此类研究的主要研究内容及方法。
对于大多用户提出的与主题或领域相关的查询需求,传统的通用搜索引擎往往不能提供令人满意的结果网页。
为了克服通用搜索引擎的以上不足,提出了面向主题的聚焦爬虫的研究。
文献[6]综述了聚焦爬虫技术的研究。
其中介绍并分析了聚焦爬虫中的关键技术:
抓取目标定义与描述,网页分析算法和网页分析策略,并根据网络拓扑、网页数据内容、用户行为等方面将各种网页分析算法做了分类和比较。
聚焦爬虫能够克服通用爬虫的不足之处。
文献[7]首先介绍了网络爬虫工作原理,传统网络爬虫的实现过程,并对网络爬虫中使用的关键技术进行了研究,包括网页搜索策略、URL去重算法、网页分析技术、更新策略等。
然后针对微博的特点和Ajax技术的实现方法,指出传统网络爬虫的不足,以及信息抓取的技术难点,深入分析了现有的基于Ajax的网络爬虫的最新技术——通过模拟浏览器行为,触发JavaScript事件(如click,onmouseover等),解析JavaScript脚本,动态更新网页DOM树,抽取网页中的有效信息。
最后,详细论述了面向SNS网络爬虫系统的设计方案,整体构架,以及各功能模块的具体实现。
面向微博的网络爬虫系统的实现是以新浪微博作为抓取的目标网站。
结合新浪微博网页的特点,通过模拟用户行为,解析JavaScript,建立DOM树来获取网页动态信息,并按照一定的规则提取出网页中的URL和有效信息,并将有效信息存入数据库。
本系统成功的实现了基于Ajax技术的网页信息的提取。
文献[8]引入网页页面分析技术和主题相关性分析技术,解决各大网站微博相继提供了抓取微博的API,这些API都有访问次数的限制,无法满足获取大量微博数据的要求,同时抓取的数据往往很杂乱的问题。
展开基于主题的微博网页爬虫的研究与设计。
本文的主要工作有研究分析网页页面分析技术,根据微博页面特点选择微博页面信息获取方法;重点描述基于“剪枝”的广度优先搜索策略的思考以及设计的详细过程,着重解决URL的去重、URL地址集合动态变化等问题;研究分析短文本主题抽取技术以及多关键匹配技术,确定微博主题相关性分析的设计方案;最后设计实现基于主题的微博网页爬虫的原型系统,实时抓取和存储微博数据。
本文研究的核心问题是,根据微博数据的特点设计一种基于“剪枝”的广度优先搜索策略,并将其应用到微博爬虫中;同时使用微博页面分析技术使得爬虫不受微博平台API限制,从而让用户尽可能准确地抓取主题相关的微博数据。
通过多次反复实验获取原型系统实验结果,将实验结果同基于API微博爬虫和基于网页微博爬虫的抓取效果进行对比分析得出结论:
本文提出的爬行策略能够抓取主题相关的微博数据,虽然在效率上有所降低,但在抓取的微博数据具有较好的主题相关性。
这实验结果证明本论文研究的实现方案是可行的。
文献[9]阐述了基于ajax的web应用程序的爬虫和用户界面状态改变的动态分析的过程和思路。
文献[10]对于全球社交网络Twitter,设计并实现了,一个爬虫系统,从另一个角度阐明了Python在编写爬虫这个方面的强大和快速。
仅仅用少量的代码就能实现爬虫系统,并且再强大的社交网站也可以利用Python编写出对应的爬虫系统爬取相关的数据用于分析。
文献[11]针对Web数据采集技术进行了介绍,分析了Web数据采集技术在将非结构化数据转换为结构化数据方面的优势:
速度快、准确性高。
从HTTP协议层分析了Web数据抓取的原理,并重点介绍了如何实现基于Python的Web数据采集方案。
Web数据采集系统可以分为:
HTTP交互和数据解析两个模块。
文献[12]提出并实现自动化测试平台,命名为DesktopCheckListTesting。
通过参照白盒测试自动化原理后,按照脚本语言的特点即运行时封装模板类改进为编译前封装模板文件。
在该平台上可以自动化的运行Python黑盒用例并得到相应的运行结果反馈。
实验结果证明软件测试自动化平台对测试项目带来诸多便捷与改善。
文献[13]设计并实现了一种可以自动登录并可以根据更新频率快慢智能抓取数据的爬虫,爬取由于权限和数据更新频繁等限制,传统的网络爬虫很难获取那一部分数据,不同于以往爬虫以页面为粒度,该爬虫以人为最小粒度,并以人与人之间的关系为抓取依据,在获取这类数据上有很好的性能。
综上,在浏览器网络爬虫领域,很多技术已经很充分了,并且解决了诸如,数据爬取,页面分析等问题。
但在根据语义爬取数据和聚焦爬虫的方面,还并不是很完善,万维网上大量的有用的信息,或者语义相近的有用信息得不到利用,这是一种巨大的损失,所以对于爬虫的研究还是非常有必要的。
三、根据任务书的任务及文献调研结果,初步拟定的执行(实施)方案(含具体进度计划)
在文献[4]、文献[7]、文献[13]等中,都对爬虫程序的基本模块和设计进行了讨论。
文献[4]中将微博爬虫程序分为:
微博登录、微博关系抓取、微博内容抓取、关键字匹配等4个模块,该爬虫侧重于微博中各种信息的抓取。
所以我将后面的三个模块总结为内容抓取。
文献[7]中的爬虫系统子模块包括:
URL管理模块、网页抓取模块、信息抽取模块、JavaScript解析模块、DOM构建模块、事件处理模块、数据库实际模块等。
文献[13]中,在系统设计与分析中,将该爬虫系统分为,模拟浏览器登录、节点获取模块、节点筛选模块、数据抓取模块、数据存储模块等5个模块。
因此,根据分析,初步拟定本课题爬虫程序包括5个重要模块:
模拟登录,页面抓取,内容抓取,数据库设计、数据存储模块。
对于这5个模块,我给出了我初步理解实现过程:
1.模拟登录流程图:
2.页面抓取流程图:
3.内容抓取流程图:
4.数据库设计:
根据所要爬取信息的网站的信息条目格式,设计了以下的一张用于初步存储的表。
表名:
dou_ban;表结构如下:
字段名
数据类型
是否为空
是否主键
默认值
说明
dynamic_id
varchar(30)
NOTNULL
是
""
动态id
user_id
varchar(30)
NOTNULL
否
""
发动态的人的昵称
dynamic_title
varchar(50)
NOTNULL
否
""
动态标题
release_time
varchar(30)
NOTNULL
否
""
动态发布时间
from_place
varchar(30)
NOTNULL
否
""
动态的来源
5.数据存储模块
包含数据库连接的获取和把获取到的信息存到数据库的表中。
例如sql语句sql=''''''insertintodou_ban(dynamic_id,user_nickname,dynamic_title,release_time,from_place)values('"""+gr[0]+"',"+"'"+gr[1]+"',"+"'"+gr[3]+"',"+"'"+gr[5]+"',"+"'"+gr[8]+"')"
具体执行计划如下:
2016.2.25-2016.4.1中期检查阶段:
完成基于python的网络爬虫系统的设计方案,并做好相应的中期检查准备工作。
阶段重点:
1.熟悉python语言的开发环境,掌握Mysql数据库操作技术;
2.运用python语言编程技术实现基于python的网络爬虫系统;
3.用python伪装成浏览器访问所需爬虫的网站,获取网站代码,最后获取相应的网站信息;
4.将所获得的信息存放在txt文本中;
5.做好中期检查准备。
2016.4.11-2016.4.25技术实现阶段:
完成基于python的网络爬虫系统的相关实现。
阶段重点:
1.连接数据库,将爬下的数据存储在数据库中,并对系统功能调试;
2.完成基于python的网络爬虫系统的全部设计和实现工作。
2016.4.21-2016.4.25文献学习阶段:
充分阅读和理解相关技术文献,对重要的外文文献进行翻译整理,完成外文译文。
阶段重点:
1.完成外文翻译工作,要求外文翻译内容与所做毕业设计课题相关,且外文作者来自母语为英语的国家。
外文翻译不少于20000个印刷符号,中文用小四号宋体字,外文用小四号TimesNewRoman体字,具体装订、封面与格式要求按照《2015届本科生毕业设计(论文)工作规定(理工类)》执行。
2016.4.26-2016.5.9撰写报告(论文)阶段:
针对前期的方案设计和系统模块的相应实现,按撰写规范的要求认真撰写毕业设计(论文)报告,交指导教师批阅。
阶段重点:
1.提交毕业设计(论文)报告;
2.做好毕业设计的答辩准备工作。
附:
参考文献
[1]王雨竹,高飞.MySQL入门经典[M].北京:
机械工业出版社,2013
[2](挪)MagnusLieHetland.Python基础教程[M].司维,曾军崴,谭颖华,译.北京:
人民邮电出版社,2014
[3](美)JamesPayne.Python编程入门经典[M].张春晖,译.北京:
清华大学出版社,2011
[4]周中华,张惠然,谢江.基于Python的新浪微博数据爬虫[J].计算机应用,2014,34(11):
3131-3134
[5]王晶,朱珂,汪斌强.基于信息数据分析的微博研究综述[J].计算机应用,2012,32(7):
2027-2029,2037.
[6]周立柱,林玲.聚焦爬虫技术研究综述[J].计算机应用,2005,25(9):
1965-1969.
[7]刘晶晶.面向微博的网络爬虫研究与实现[D].上海:
复旦大学,2012
[8]曾小虎.基于主题的微博网页爬虫研究[D].武汉:
武汉理工大学,2014
[9]AliMesbah,ArievanDeursen,StefanLenselink.CrawlingAjax-BasedWebApplicationsthroughDynamicAnalysisofUserInterfaceStateChanges.ACMTransactionsontheWeb(TWEB),2012,6
(1):
1-30
[10]NarashimaS.Purohit,MeghanaBhat,AkshataB.Angadi,KarunaC.Gull.CrawlingthroughWebtoExtracttheDatafromSocialNetworkingSite–Twitter.ParallelComputingTechnologies(PARCOMPTECH),2015:
1-6
[11]齐鹏,李隐峰,宋玉伟. 基于Python的Web数据采集技术 [J].电子科技.2012(11)
[12]李鑫. 基于Python的软件测试自动化平台 [D].太原科技大学2014
[13]郭涛,黄铭钧. 社区网络爬虫的设计与实现 [J].智能计算机与应用.2012(04)
指导教师批阅意见