批量图片下载器设计论文36488.doc
《批量图片下载器设计论文36488.doc》由会员分享,可在线阅读,更多相关《批量图片下载器设计论文36488.doc(54页珍藏版)》请在三一文库上搜索。
1、 第III页Mass picture downloader图片批量下载器 摘 要批量下载图片可以方便用户从一个网站下载大量图片,节省用户时间,给用户带来便利。本文设计和实现一个基于正则表达式的图片批量下载器。本文首先在分析网上现有的图片下载器的工作原理及运行结果的基础之上,针对原有的爬虫搜索所有URL的下载方式所存在的不合理性与盲目性,基于正则表达式对URL进行判定和解析,设计了新的图片下载器的总体架构,且该架构主要包括爬虫模块和正则表达式自动产生模块两个部分。本文对爬虫模块的设计和实现原理进行了详细阐述。爬虫模块设计新的下载方式,要求用户指定的正则表达式为图片URL的提取标准,使得程序可以更
2、快搜索并下载下来图片。程序根据用户指定的正则表达式再结合爬虫程序来提取出一个网页中的地址,直到到达指定层数,最后执行下载。在分析URL的同时,程序亦建立网站层次树,以便用户查看那些未下载成功的图片在网站上的确切位置,从而可以选择重新下载。本文详细介绍了正则表达式自动模块的设计和实现,该模块通过用户输入的,从而得到一个比较高效的正则表达式,以供图片批量下载器使用。并且程序对一个正规的图片网站执行下载,运行结果表明,该程序能够快速准确的完成用户指定的下载任务,且使用较为方便,大大节省了用户的时间。论文最后对全文做出了总结,并对未来研究方向进行了展望。关键词:图片下载,正则表达式,爬虫程序,动态规划
3、算法,规范 ,JAVAMass picture downloaderAbstractMass picture downloader is a software that can save users time by downloading thousands of pictures from a website automatically.This thesis is about the design and the realization of the mass picture downloader.A new architecture of the software has been bu
4、ilt,which includes two parts called crawler and regular expression generator.Basing on the analysis of the working mechanism and the results of existent mass picture downloaders,This thesis describes a new way that is different from traditional blindly search on URLs using a Crawler.The new way is b
5、ased on the analysis to the URLs by using regular expression.This thesis describes the design and the realization of the crawler in detail.A new way has been designed for the crawler part.In the new way,a regular expresssion appointed by the user is used to extract the URLs from a webpage,which,inde
6、ed,make the search and downloading much faster.The program extracts a URL from a webpage according to the regular expression,then gets the content of the webpage indexed by the extracted URL,and then analyzes the content of the webpage by using the regular expresssion next layer,until reaches the de
7、signated layer count.During the analysis of the URLs,a websiteTree is being built,in order to do the users a favor when they want to see the address of the downloading-unfinished pictures.This thesis also describes the design and the realization of the regular expression generator in detail. The reg
8、ular expression generator provides regular expression that generated through the URLs input by the users to the crawler to make it work.Then the program is put into practice-download pictures from a large picture website,the result shows that the program works well.At last,this thesis makes a summar
9、y about the program,and gives an expectation about the future.Key Words: picture downloader,regular expression,crawler,dynamic programming,URL specification,Java目 录图片批量下载器II摘 要IIAbstractIII1 绪论11.1 课题研究背景及意义11.1.1 研究背景11.1.2 研究意义21.2 国内研究现状21.3 研究的主要内容31.4 论文组织结构31.5 本章小结42 图片批量下载器的总体架构设计52.1 总体设计52
10、.2 关键模块简介52.2.1 爬虫模块52.2.2 正则表达式自动产生器模块62.3 本章小结63 爬虫程序的整体设计和实现及相关技术要点73.1 爬虫程序的整体设计和实现73.2 相关技术要点133.2.1 检查重复URL133.2.2 将相对地址转化为绝对地址143.2.3 将一张图片下载下来的函数163.3 本章小结174 正则表达式自动产生器184.1 基于动态规划的最优字符串比对算法184.1.1 字符串比对定义184.1.2 字符串比对问题的动态规划解法184.2 正则表达式自动产生器总体设计和实现224.2.1 假设和规定224.2.2 自动产生正则表达式的问题分析和基本思路2
11、24.2.3 正则表达式自动产生器设计和实现254.3 程序测试结果324.4 本章小结345 结论与展望355.1 工作总结355.2 工作展望35致谢36参考文献37附录A38 第49页1 绪论1.1 课题研究背景及意义1.1.1 研究背景目前,随着多媒体技术的发展,对信息的表现形式逐步趋向多元化,其中数字图片是信息传递的主要形式之一。对于喜欢收藏各种精美数字图片的人而言,下载少量图片可以通过浏览器简单的右键保存到本地硬盘,但是如果要下载一个网站上成千上万张图片,手工一张一张保存,已经是不可能的事,更何况目前大多数图片网站,一张图片要点击平均3-4次才能得到真正想要的图片。于是针对该种状况
12、,设计一款图片批量下载工具,方便用户批量下载网站的图片,节省用户时间。目前,互联网上图片网站都具有如下特征:1.网站排版很有规则,网站的层次结构鲜明且固定,比如:用户从进入一个网站到看到他所想要的图片,所要点击的次数都是固定的,这就成为可以采用正则表达式层来进行URL匹配的前提条件。2.目前绝大多数网站,都没有采用反盗链技术,这就使得爬虫程序能够运行成为可能。3.绝大多数网站,如果从用户每一次深层次的点击角度来看待,那么处于同一层的多个URL具有相似性,这就使正则表达式的精确匹配成为可能。4.几乎所有网站,表示下一页的方式都是固定不变的,比如:一个网站的下一页都用一个按钮,或者一个文字超链接等
13、等,这就使递归的分析下一页成为可能。5.网页上链接重复的情况,目前看来,全部发生在同一层里面,也就是说,仅有同一层才可能出现重复URL的情况。在上述背景下,论文将对如何设计爬虫程序和如何正确的提取出正则表达式进行研究,详细阐述可行方案和实现机制,旨在探求能够高效方便的批量下载图片的方法。1.1.2 研究意义图片在目前的信息传输过程中起到重要的作用,丰富多彩的图片能够更加直观,更加有效的表达出信息,本课题的研究意义就在于能够帮助用户高效的,批量的从大型图片网站上搜集各种精美图片,整个搜集过程要实现自动化后台操作,从而使用户摆脱重复而繁重的右击保存操作,节约用户宝贵的时间。1.2 国内研究现状目前
14、网上流传的图片下载器种类繁多,技术也比较成熟,基本上都是基于传统爬虫技术,比较好的例如:globalFetch图片下载器,picture downloader 等等。picture downloader是一款功能齐全的图片下载软件,可以新建下载任务,输入给定的可用URL,图片大小,关联网址级数及网址URL所具有的特征文件夹名和特征后缀名,就可以开始下载任务,根据用户指定的关联网址级数,该工具从当前网页搜索指定深度的网页。该软件还可以与百度搜索引擎相关联,将用户提交的图片搜索信息以表单形式提交给百度,然后在其内置浏览器中显示结果。globalFetch也有类似的功能。但是美中也有不足之处,具体情
15、况如下:1. 目前我所见到的几款图片下载器,基本上都是基于类似于搜索引擎一样,搜索所有图片链接,然后将所有图片统统下载下来,然而,有可能这么多图片并不是用户所想要的,用户的需求可能是,用户只对网站上的一个系列或其中的某个人物的图片感兴趣,所以我想在针对某一主题进行特定下载方面进行改进。2. 目前我所见到的几款图片下载器,虽然设定了限制条件,但还是有按钮图片等被批量下载下来,存在错误下载格式的问题,所以我想在针对某一主题进行特定下载方面进行对此改进。3. 目前我所见到的几款图片下载器,都是基于分析网页上url地址,根据特征来提取网址,但是,目前非常多的网站采用反盗链功能,让分析网页链接这一方法完
16、全失效,如果图片下载器遇到这种网站,根本不会下载任何东西。4.也有一些软件自带批量下载功能,比如迅雷中的下载全部链接功能,以及QQ浏览器中的提取图片功能,但以上都只能单纯的提取当前网页的图片,无法对网站进行深层次的搜索。参考文献1指出:文件伪装是目前采用的最多的反盗链技术,一般会结合服务器端的动态脚本(JSP)。实际上,用户请求的文件地址,只是一个经过伪装的脚本文件,这个脚本文件会对用户的请求作出认证,一般会检查Session,Cookie或 HTTP_REFERER作为判断是否为盗链的依据。而真实的文件隐藏在用户不能够访问的地方,只有用户通过验证后才会返回该用户。目前有许多网站采用反盗链技术
17、,这一技术的采用,使得一般的爬虫程序无法正常运行,由于反盗链使得爬虫无法获得可用链接,就需要采用其它方法。1.3 研究的主要内容本文研究的主要内容包括爬虫程序的构建和如何根据用户输入的URL来提取出准确的正则表达式两大内容。最后,把程序应用于一个大型图片网站中,实现批量下载,从而验证模型和算法是合理的、有效的。1.4 论文组织结构全文共分为四章,其中:第1章 是绪论部分,首先简单概括了课题的来源和背景,然后论述了国内研究现状,最后根据来源和背景提出了程序研究的主要问题和内容,并阐述了程序的意义以及论文的组织结构。第2章 介绍了图片下载器的总体架构设计。第三章主要论述了程序主体爬虫程序的总体设计
18、方案。首先讨论了程序需求并根据程序需求分析提出了程序总体解决方案。随后,详细描述了在爬虫程序执行过程中要解决的关键问题的设计和实现,包含如何防止重复下载,如何通过正则表达式提取出URL,如何构建网站层次树等等。第四章主要论述了程序附属正则表达式产生器的总体设计方案。首先描述了正则表达式产生器需求分析提出了程序总体解决方案。随后,详细描述了提取正则表达式过程中要解决的关键问题的设计和实现。第四章最后针对实际图片网站给出了程序测试结果,以验证程序的正确性。第五章总结全文,并展望了未来发展方向。1.5 本章小结本章详细描述了本课题的所处的背景,由于这些背景因素的存在,使得本课题的实现成为可能。本章接
19、着提出了本课题的研究意义,分析了国内的研究现状和所取得的研究成果,并列举出相关示例加以阐述,最后提出了本文的主要研究内容及论文的结构。2 图片批量下载器的总体架构设计2.1 总体设计图片批量下载器主要由网站爬虫程序和正则表达式自动产生程序组成,正则表达式产生程序负责从用户统计输入的URL中提取出这些URL的特征正则表达式,然后加入到爬虫程序的正则表达式队列中,作为提取某一层后台页面的URL的标尺。爬虫程序就是根据正则表达式队列中的URL正则表达式对一个网站进行一层一层的剥离,直到正则表达式队列指定的层数。图片批量下载器的总体架构设计如图2-1所示。图2-1 图片批量下载器的总体架构设计2.2
20、关键模块简介2.2.1 爬虫模块爬虫程序是本课题的主体程序,该模块工作时首先接受用户输入的一个入口页,然后再接受用户通过正则表达式自动产生器得到的一层URL的正则表达式,用户输入完毕之后,爬虫程序开始根据用户输入的每一层的正则表达式提取出下一层URL,接着在下一层,这样循环,直到指定层数。2.2.2 正则表达式自动产生器模块该模块是专门针对上述爬虫程序开发的模块,此模块的功能主要是根据用户统计输入的URL进行特征提取,最后得到一个较为准确的URL正则表达式,然后再提供给爬虫程序使用。2.3 本章小结本章通过系统总体协作图简要介绍了图片下载器的整体架构,以及两个关键模块的主要功能。3 爬虫程序的
21、整体设计和实现及相关技术要点爬虫程序是本课题的主体程序,本章详细阐述了如何根据1.1.1 的背景条件来有效设计爬虫程序,并详细描述了其实现。其他关键技术要点也给出了响应的设计与实现。3.1 爬虫程序的整体设计和实现传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。本程序的爬虫基于传统爬虫的设计理念,但是由于本程序的需求的具有特殊性,即:用户登陆一个图片网站,大多数情况下,用户不可能想要下载该网站上的所有图片,更多的情况是下载其中的一类,那么,如果采用传统的爬虫,就会严重影响搜索速度,而且下载
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 批量 图片下载 设计 论文 36488
链接地址:https://www.31doc.com/p-3930448.html