基于R语言爬取电商数据的价格销售分析.docx

上传人:小飞机 文档编号:4957897 上传时间:2023-05-26 格式:DOCX 页数:35 大小:667.94KB
返回 下载 相关 举报
基于R语言爬取电商数据的价格销售分析.docx_第1页
第1页 / 共35页
基于R语言爬取电商数据的价格销售分析.docx_第2页
第2页 / 共35页
基于R语言爬取电商数据的价格销售分析.docx_第3页
第3页 / 共35页
基于R语言爬取电商数据的价格销售分析.docx_第4页
第4页 / 共35页
基于R语言爬取电商数据的价格销售分析.docx_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《基于R语言爬取电商数据的价格销售分析.docx》由会员分享,可在线阅读,更多相关《基于R语言爬取电商数据的价格销售分析.docx(35页珍藏版)》请在三一办公上搜索。

1、目 录1 绪论21.1 研究背景及意义21.2 国内外研究现状21.3 本文研究内容32 相关技术简介42.1 网络爬虫定义42.2 R语言简介42.3 Scrapy框架52.4 数据挖掘技术介绍52.4.1 日志挖掘52.4.2 数据挖掘分析的过程62.5 Heritrix简介73 系统分析83.1 系统可行性分析83.2 功能需求分析83.3 系统流程分析93.4 性能需求94 系统设计114.1网络爬虫的模型分析114.2网络爬虫的搜索策略114.3网络爬虫的主题相关度判断124.4 网络爬虫设计144.5 功能实现155 总结与展望21参考文献22致 谢231 绪论1.1 研究背景及意

2、义随着网络的发展,越来越多的资源出现在人们面前,这时候人们就需要一种查询这些资源的方法,一种可以方便快捷获取自己想要的东西的方法。这时候搜索引擎这种搜索工具就出现了。网站拥有了较多内容后,首先考虑基于目录的内容分类,以解决信息快速定位的问题,随着内容量的进一步增加,很多内容在发表之后就很快被湮没,成为“信息孤岛”,而不断加深的目录结构也会让用户逐渐失去耐心。这时,搜索引擎的优势就体现出来了:可以让处于“信息孤岛”状态的内容以一种更直接的方法提供给用户;和基于目录/分类的树形结构不同,基于关键词检索还可以让内容之间实现网状的关联结构,已经出现了许多类似的搜索引擎。针对搜索引擎广阔的应用前景以及分

3、析国内外搜索引擎的发展现状,根据全文检索系统的工作原理设计一种基于Internet的全文搜索引擎模型,它可以从互联网上获取网页,建立索引数据库,并采用数据库管理作业和多线程技术以提高全文搜索的性能和效率,从技术上可以适用于任何有搜索需求的应用。1.2 国内外研究现状网络爬虫,又称为Robots或Spiders,几乎与网络同时出现。第一个网络爬虫是Matthew Gray的Wanderer,在头两届国际万维网会议上出现过数篇关于网络爬虫的论文。但是那时候互联网上的信息规模比现在要小得多,那些文章中并没有阐述如何处理现在所面临的海量网络信息的技术。每个搜索引擎的后台,都有相应的网络爬虫在工作着。但

4、是出于互相竞争的原因,这些网络爬虫的设计并没有公开,除了以下3个:Google Crawler,Internet Archive Crawler以及Mercator。1990 年,万维网还没有诞生,但是人们已经开始频繁的使用网络来传输文件了,由于大量的文件分布在不同的终端上,如果对每个终端逐一的进行访问既费时又费力,于是蒙特利尔大学的学生 Alan Emtage、Bill Wheelan 和 Peter Deutsch开发了一个可以用文件名查找文件的系统,也就是 Archie。它存储了一个 FTP 文件名列表,当用户输入文件名进行搜索时,它会告诉用户该文件是放在哪个 FTP主机中,用户就可以直

5、接访问这个主机获取文件。深受 Archie 系统的启发,1993年美国内华达 System Computing Services 大学开发出了一个已经可以检索网页的搜索工具。同年,麻省理工学院(MIT)的学生马休格雷(Matthew Gray)开发出了第一个 web robot 网络机器人程序,这个程序被命名为 World Wide Web Wanderer。虽然当时这个程序并不是以做搜索引擎为目的而编写的,但是它却促进了后来搜索引擎的发展。网络机器人程序(Robot)也叫网页蜘蛛(Spider)或网络爬虫(Crawler)。它是搜索引擎系统中负责抓取网页的文本信息、图片信息和其它信息的功能模

6、块。它利用 HTML 文档中包含的指向其它页面或文件的链接信息,在分析完一个页面后转到其它链接继续分析,把分析出来的结果存入数据库。Worldwide Web Wanderer 刚开始只用来计算互联网的发展规模,后来也发展成为能够抓取 URL 的系统。1.3 本文研究内容本文主要分为五个章节,第一部分为前言,主要介绍了课题背景、研究意义、国内外研究现状等内容。第二部分是相关技术的介绍,主要介绍了网络爬虫、R语言、Lucene等。第三部分为系统分析,主要介绍了可行性分析功能需求分析等。第四部分是系统设计,系统架构设计和功能设计是主要的设计内容。第五部分是总结,主要对全文进行了总结。2 相关技术简

7、介2.1 网络爬虫定义定义1:网络爬虫是一个自动提取网页的程序,它为搜索引擎从Web上下载网页,是搜索引擎的重要组成部分。通用网络爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL列表;在抓取网页的过程中,不断从当前页面上抽取新的URL放入待爬行队列,直到满足系统的停止条件。定义2:主题网络爬虫就是根据一定的网页分析算法过滤与主题无关的链接,保留主题相关的链接并将其放入待抓取的URL队列中;然后根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。所有被网络爬虫抓取的网页将会被系统存储,进行一定的分析、过滤,并建立索引,对于主题网络爬虫

8、来说,这一过程所得到的分析结果还可能对后续的抓取过程进行反馈和指导。定义3:如果网页p中包含超链接l,则p称为链接l的父网页。定义4:如果超链接l指向网页t,则网页t称为子网页,又称为目标网页。主题网络爬虫的基本思路就是按照事先给出的主题,分超链接和已经下载的网页内容,预测下一个待抓取的URL及当前网页的主题相关度,保证尽可能多地爬行、下载与主相关的网页,尽可能少地下载无关网页。2.2 R语言简介R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运

9、行于UNIX,Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R还有以下特点:1.R是自由软件。这意味着它是完全免费,开放源代码的。可以在它的网站及其镜像中下载任何有关的安装程序、源代码、程序包及其源代码、文档资料。标准的安装文件身自身就带有许多模块和内嵌统计函数,安装好后可以直接实现许多常用的统计功能。2.R是一种可编程的语言。作为一个开放的统计编程环境,语法通俗易懂,很容易学会和掌握语言的语法。而且学会之后,我们可以编制自己的函数来扩展现有的语言。这也就是为什么它的更新速度比一般统计软件,如,SPSS,SAS等快得多。大多数最新

10、的统计方法和技术都可以在R中直接得到。3.所有R的函数和数据集是保存在程序包里面的。只有当一个包被载入时,它的内容才可以被访问。一些常用、基本的程序包已经被收入了标准安装文件中,随着新的统计分析方法的出现,标准安装文件中所包含的程序包也随着版本的更新而不断变化。在另外版安装文件中,已经包含的程序包有:base一R的基础模块、mle一极大似然估计模块、ts一时间序列分析模块、mva一多元统计分析模块、survival一生存分析模块等等.4.R具有很强的互动性。除了图形输出是在另外的窗口处,它的输入输出窗口都是在同一个窗口进行的,输入语法中如果出现错误会马上在窗口口中得到提示,对以前输入过的命令有

11、记忆功能,可以随时再现、编辑修改以满足用户的需要。输出的图形可以直接保存为JPG,BMP,PNG等图片格式,还可以直接保存为PDF文件。另外,和其他编程语言和数据库之间有很好的接口。5.如果加入R的帮助邮件列表一,每天都可能会收到几十份关于R的邮件资讯。可以和全球一流的统计计算方面的专家讨论各种问题,可以说是全世界最大、最前沿的统计学家思维的聚集地。2.3 Scrapy框架Scrapy属于R语言开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy是一个为了爬取网站数据,提取结构性数

12、据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的HTML数据。抓取网页的一般方法是,定义一个入口页面,然后一般一个页面会有其他页面的URL,于是从当前页面获取到这些URL加入到爬虫的抓取队列中,然后进入到新页面后再递归的进行上述的操作,其实说来就跟深度遍历或广度遍历一样。Scrapy 使用 Twisted这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求。2.4 数据挖掘技术介绍2.4.1 日志挖掘日志挖掘一

13、般都包含以下几个过程:(一)前处理数据预处理日志数据挖掘中最重要的组成部分,其任务是将原始日志数据转换成格式的数据挖掘和模式发现在必要的依据,预处理可以简化数据挖掘的过程中,做出更客观的决定。数据处理,包括数据清洗,用户识别,会话识别,分四步额外的路线。1.清洗数据数据清理是指将被处理导入到关系型数据库中,删除错误的值在Web日志数据,缺失值的日志数据,和其他人,而数据挖掘和Web无关的变量或数据清理,取得了经营目标工具;2简介用户。用户的识别,是要找到从日志数据的每个用户访问的地址,避免重复挖掘。此时,由于在本地高速缓存中,在代理服务器和防火墙为用户动态分配IP地址的情况下,要确定的每个用户

14、会变得非常复杂。(二)模式发现模式发现,数据预处理,数据挖掘算法对数据进行分析。有几种方法统计分钟,分类,分组,关联规则,路径分析。(1)的统计信息。所述统计方法是通过分析会话文件中提取知识的最常用的方法,浏览时间,频率,和其他导航路径,平均值等的统计分析。尽管缺乏深度,但仍然可用于提高网站的结构,增强了安全性系统,提高现场访问的效率等。(2)分类。类别包括开采技术将找到一个短期的还是数据的事件或特定群体的一个子集的规则的定义。该技术是应用最广泛的各类业务问题,以一流的开采技术。分类算法是决策树最流行的方法,除了神经网络,贝叶斯分类。(3)基团。分组是一个数据集成多个类别,因为有高浓度的数据之

15、间的相似性,在同一类,和不同的类中,可以是在量之间的差数据。技术团,没有预定义的类别和训练样本存在,所有记录将按照彼此之间的相似性的程度进行分类。主要算法K均值,DBSCAN等。(4)相关的规则。这样做的目的是要利用上数据之间的关系的隐藏的相关性分析,自动检测的隐藏模式以前未发现的,相关分析通常以规定的形式。这时,利用先天的关联规则挖掘算法,FP-growth算法。(5)路径分析。路径分析可用于指定路径定期访问该网站的调整和优化的网站,它允许用户访问更加方便,快捷到所需的页面结构也可以用来备份聪明和有针对性的电子商务活动,按照灌木格局浏览普通用户。(三)模式分析基于所有上述过程中,原始数据进行

16、进一步的分析,以确定用户的型态冲浪的规律,即利益和使用者的习惯,并描述了某些以提供对规划和决策建筑工地一个理论基础。主要方法是:问题,OLAP技术和可视化技术。2.4.2 数据挖掘分析的过程(一)所要解决的问题行业或机构所面临的数据挖掘需求总是很多,这个问题前,如需要形成一个研究问题本身,然后提取这一问题的模型很多次。因此,数据挖掘用户的首先是一个共同的背景知识,了解需求,充分发挥数据挖掘的价值,我们的目标必须有一个明确的定义,这个决定最终想做的事情。(二)获得的数据建立数据挖掘库来源为了进行数据挖掘需要收集的数据源挖掘。更多的时候,位于数据源中不同的数据源,因为在大多数情况下,需要及早治疗,

17、修改数据,和外部数据经常在使用中遇到的,所以应该可以收集在一个数据库或库数据。(三)数据分析和调整数据分析是监管过程本身数据的深入研究,集中识别数据的模式和趋势,可以用船级社和其他技术进行具体分析的规则,主要目标是实现与各种因素的复杂影响,有明确的关系,终于找到了因素之间的相互关系。数据同步是基于数据分析处理和结论以上,数据以调整状态,并在数据的趋势有更好的理解的基础知识,那么这个问题应继续解释,数量,为消除数据的需求,根据整个数据挖掘过程产生新的知识或变量新组合,以反映国家的一个准确的描述。(四)建模这是数据挖掘的一个重要组成部分,经过加工和分析上面的步骤,问题仍然定义进行了调整,根据需求更

18、多,你可以创建一个数据挖掘模型的数据的结构和内容。在预测过程中,常用的神经网络,决策树,数理统计,时间序列分析,建立模型。2.5 Heritrix简介Heritrix是IA的一个开源,可扩展的web爬虫项目。Heritrix工程始于2003年初,IA的目的是开发一个特殊的爬虫,对网上的资源进行归档,建立网络数字图书馆。在过去的6年里,IA已经建立了400TB的数据。 IA期望他们的crawler包含以下几种:宽带爬虫:能够以更高的带宽去站点爬。主题爬虫:集中于被选择的问题。持续爬虫:不仅仅爬更当前的网页还负责爬日后更新的网页。实验爬虫:对爬虫技术进行实验,以决定该爬什么,以及对不同协议的爬虫

19、爬行结果进行分析的。3 系统分析3.1 系统可行性分析技术可行性分析本系统采用R语言进行开发,提示信息完善,界面友好有亲和力,本系统在技术方面是可行的。操作可行性分析本系统采用Windows开发,操作简单易懂,对用户来说不需要高深的计算机专业知识,只要会基本电脑知识,就可以方便的操作本系统。经济可行性分析由于本系统属于模拟的网络爬虫系统,整个系统并不算太大,因此开发成本不算太高。整个开发过程由两个人参与,只需要两台PC机和上述的各种软件,就可以实现全部的开发任务。由于PC机是我们各自原有的,而且无需专门升级硬件;而各种软件,又是能够在网上免费下载的,因此,整个开发成本可以说是非常的低廉,这也为

20、我们以后进一步完善网站提供了非常大的方便。在使用成本上,用户只需要拥有一台能够连接到国际互联网上的计算机,通过注册就可以在世界的任何一个角落使用网站的全部功能和服务。而且对计算机的硬件的需求也不是很高,软件方面也没有特殊的需求,易于广大用的访问与使用。因此,从经济可行性分析来看,这个网站体现了经济实惠,但是功能强大的特点。3.2 功能需求分析本系统目标是设计一个基于R语言的爬虫系统,主要功能需求包括以下方面:(1)信息收集:在系统设计中,首先,要收集信息,从其它网站上收集信息,将其它网站上收集的信息保存到数据库中。(2)搜索实现:本系统是一个搜索系统,是专业为用户提供搜索服务的爬虫系统,用户需

21、要搜索数据时,只需要在站内搜索栏中输入相关的关键字,系统就会自动进行匹配,将搜索出来的信息进行自动排列,然后展示给用户,满足用户的需求。除此之外,还需要注意一点,搜索出来的数据是不是用户想要搜索的数据,在此之前,用户可以先输入想要查询的数据的关键字,系统先进行模糊查询,通过数据库匹配,然后进行分词,建立索引,将建立好的索引进行集合,然后返回给用户,供用户进行筛选。(3)展示实现:在用户提交搜索请求之后,系统将搜索到的信息通过浏览器分页的方式,将搜索结果显示给用户,这些信息显示要满足简单、直观、交互性良好等具体目标和要求。(4)安全管理:安全管理可以分为系统安全和数据安全,系统的安全需要做好程序

22、判断和更新维护,数据安全需要做好数据备份。3.3 系统流程分析爬虫系统的工作流程主要包括五个步骤:aiohttp下载网页、asyncio异步框架、lxml配合xpath分析网页、pandas读取下载后的数据、bokeh生成网页显示。爬虫系统流程图如图3-1所示:图3-1 爬虫系统流程图3.4 性能需求本系统实现后应具有以下性能:可靠性本系统能够提供724小时持续访问的功能,从根本上确保系统实时有效和可用性,管理员会在每日凌晨特定时间段内对系统进行备份和维护。系统中传输数据都是精准有效的,采用握手协议,保证数据不会丢失。在权限设置方面,系统后台管理采用分级权限和逐级授权管理的功能,管理员可以对用

23、户设置权限,也可以修改用户的权限,确保不同用户有不同的权限,不同权限对应相应的管理功能和范围。可维护性软件采用面向对象技术开发,对比面向过程的软件开发技术来看,面向对象的开发技术更容易维护和升级。在系统开发中,设计师对软件进行严格管控,在开发过程中采用规范的文档管理,这样方便系统修改和维护。在保证高聚合,低耦合的原则下,尽量做到软件规范模块化,使得软件的更新和修改极其方便,增强可维护性可扩展性保证在系统升级或者系统功能扩展,或者用户数量激等情况下,系统能够在保持现有系统功能和架构的情况下,平稳升级。系统建设要求能够保护投资,同时,在服务器等硬件更新升级方面,在服务器的访问数据量和访问频度增加的

24、情况下,能够通过增加服务器内存和硬盘的方式进行扩充,可以通过硬件升级解决大数据量和高访问频度的问题。安全性软件必须经过安全设置,能够保证运行时候的数据和功能的安全,同时要考虑账号的安全,以及完善安全漏洞。此外,也要保证硬件设备的安全性,操作系统定期进行漏洞修复。易用性考虑到平台面向的是普通的消费者,这些消费者使用计算机的水平有限,所以,系统要容易操作,用户体验好,功能布局合理。对于管理员后台管理,要提供完善和合理的管理流程。兼容性要求软件能够所有浏览器上的都可以运行,要考虑浏览器的兼容问题,要兼容主流的浏览器。对客户端的要求不能太高,通常配置的台式电脑都可以使用。可移植性软件可以在不同操作系统

25、之间进行迁移,考虑随着用户使用量的增大,需要使用linux操作系统进行负载均衡,所以保证系统在需要的时候平稳的迁移到其他系统。4 系统设计4.1网络爬虫的模型分析首先建立URL任务列表,即开始要爬取的URL。由URL任务列表开始,根据预先设定的深度爬取网页,同时判断URL是否重复,按照一定算法和排序方式搜索页面,然后对页面按照一定算法进行分析,并提取相关URL,最后将所得URL返回任务列表。之后将任务列表中URL重新开始爬取,从而使网络爬虫进行循环运行。4.2网络爬虫的搜索策略本文的搜索策略为广度优先搜索策略。如下图4-1所示。图4-1 广度优先搜索策略示意图 1.定义一个状态结点采用广度优先

26、搜索算法解答问题时,需要构造一个表明状态特征和不同状态之间关系的数据结构,这种数据结构称为结点。不同的问题需要用不同的数据结构描述。2.确定结点的扩展规则根据问题所给定的条件,从一个结点出发,可以生成一个或多个新的结点,这个过程通常称为扩展。结点之间的关系一般可以表示成一棵树,它被称为解答树。搜索算法的搜索过程实际上就是根据初始条件和扩展规则构造一棵解答树并寻找符合目标状态的结点的过程。广度优先搜索算法中,解答树上结点的扩展是沿结点深度的“断层”进行,也就是说,结点的扩展是按它们接近起始结点的程度依次进行的。首先生成第一层结点,同时检查目标结点是否在所生成的结点中,如果不在,则将所有的第一层结

27、点逐一扩展,得到第二层结点,并检查第二层结点是否包含目标结点,.对长度为n+1的任一结点进行扩展之前,必须先考虑长度为n的结点的每种可能的状态。因此,对于同一层结点来说,求解问题的价值是相同的,我们可以按任意顺序来扩展它们。这里采用的原则是先生成的结点先扩展。结点的扩展规则也就是如何从现有的结点生成新结点。对不同的问题,结点的扩展规则也不相同,需要按照问题的要求确定。3.搜索策略为了便于进行搜索,要设置一个表存储所有的结点。因为在广度优先搜索算法中,要满足先生成的结点先扩展的原则,所以存储结点的表一般设计成队列的数据结构。搜索的步骤一般是:(1)从队列头取出一个结点,检查它按照扩展规则是否能够

28、扩展,如果能则产生一个新结点。(2)检查新生成的结点,看它是否已在队列中存在,如果新结点已经在队列中出现过,就放弃这个结点,然后回到第(1)步。否则,如果新结点未曾在队列中出现过,则将它加入到队列尾。(3)检查新结点是否目标结点。如果新结点是目标结点,则搜索成功,程序结束;若新结点不是目标结点,则回到第(1)步,再从队列头取出结点进行扩展.。最终可能产生两种结果:找到目标结点,或扩展完所有结点而没有找到目标结点。4.3网络爬虫的主题相关度判断主题爬虫的系统组成最初考虑是对页面的过滤,不像普通爬虫对所有页面的链接进行处理,先对页面与受限领域的主题相关度进行分析,只有当其主题相关度符合要求时才处理

29、该页面中的链接,因为如果该页面和本领域比较相关,它所包含的链接和领域相关的几率也较大,这样提高了爬行精度,虽然会遗漏少数页面,但综合效果是令人满意的。因此,主题相关度的分析是主题爬虫设计的关键。主题蜘蛛将网页下载到本地后,需要使用基于内容的主题判别方法计算该网页的主题相关度值,主题相关度低于某一阈值的网页被丢弃。什么是网页标题通常浏览一个网页时,通过浏览器顶端的蓝色显示条出现的信息就是“网页标题”。在网页HTML代码中,网页标题位于标签之间。网页标题是对于一个网页的高度概括,一般来说,网站首页的标题就是网站的正式名称,而网站中文章内容页面的标题就是这文章的题目,栏目首页的标题通常是栏目名称。当

30、然这种一般原则并不是固定不变的,在实际工作中可能会有一定的变化,但是无论如何变化,总体上仍然会遵照这种规律。例如,现在会看到很多网站的首页标题较长,除了网站名称之外,还有网站相关业务之类的关键词,这主要是为了在搜索引擎搜索结果中获得排名优势而考虑的,也属于正常的搜索引擎优化方法。因为一般的公司名称(或者品牌名称)中可能不包含核心业务的关键词,在搜索结果排名中将处于不利地位。(二)网页标题的重要性以Google为例,Google会对其标题标签(meta title)中出现的关键字给予较高的权值。所以应当确保在网站的标题标签中包含了最重要的关键词,即应围绕最重要的关键词来决定网页标题的内容。不过网

31、页的标题不可过长,一般最好在35到40个字符之间。在实际操作中,网页标题不宜过短或过长。太短无法完整的表达网页信息,太长不仅不利于用户识别,而且对搜索引擎来说也加大了识别核心关键词的难度;网页标题应概括网页的核心内容。搜索引擎在进行搜索的时候,搜索结果的内容一般是网页标题、网页摘要信息和链接,要引起用户的关注,高度总结了网页内容的标题至关重要。比如戴尔中国的网站首页标题为“戴尔中国(Dell China)计算机,笔记本电脑,台式机,打印机,工作站,服务器,存储器,电子产品及附件等”。戴尔的首页标题中不但涵盖了最重要的公司信息,而且还包括公司的主要产品,这就是核心关键词,当用“笔记本电脑”、“台

32、式电脑”这些关键词在谷歌中进行搜索时,戴尔公司的网页都排在第一屏的前几条位置。但是与此同时需要注意的还有网页正文的重要性,因为网页的标题和关键字很可能与正文无关,虚假关键词是通过在META中设置与网站内容无关的关键词,如在Title中设置热门关键词,以达到误导用户进入网站的目的。同样的情况也包括链接关键词与实际内容不符的情况。具体判断主题相关度的步骤1.对标题及正文的特征项的选取是通过分词后与主题集合匹配,并通过词频计算来得到与主题向量维数相等的标题向量和正文向量。2.通过向量空间模型计算出主题和标题的相关度B。3.通过空间向量向量模型计算主题与正文的相关度C。4.主题与整个网页的相关度:A=

33、4B+C。5.通过详细计算,设定相关度阈值为2,网页与主题的相关度A2,则认为该网页与主题相关的。4.4 网络爬虫设计网络爬虫的实现要分为三个步骤,这三个步骤分别为网页分析,网页处理队列,网页信息截取。1.网页分析网页文档通常是html格式的,这种格式的文件通常是种半结构化文本,用标签表示了各部分代表的意思。对于半结构的文本,往往都是对该文本中带有特殊标识的字符先进行分析,然后在对该文本进行爬虫处理,具体而言,就是对HTML语言中各个标记之间存在的关系进行分析。经过对各个元素的分析,就能确定用户在网页中想要获取的信息。HTML中元素的描述主要是采取开始标记(Start Tag)、内容(Cont

34、ent)、结束标记(End Tag)一起标示的。其中,元素名称在开始标记中表示,在HTML语言中标记为,对应的结束标记为,内容出现在开始标记和结束标记之间。在本系统中,我们采用的网页分析方法是利用网页标记树实现的,主要是对文本进行分析,将页面转化为动态网页标记树,这个树可以反映文档的全部结构,下图4-2 是一个简单的动态网页标记树。 图 4-2 动态标记树2. 网页的处理队列页面处理队列中保存的是页面的URL,处理队列四种,包括等待队列、处理队列、错误队列、完成队。爬出将爬取的网页存放在对应队列,按照算法依次处理,这个移动网页爬虫按照搜索算法将对应web网页的全部搜索,并抓取下来。页面队列中保

35、存的页面的URL都是属于内部链接。等待队列(WaitURL):在这个队列中所有网页都是等待被网络爬虫程序处理,新抓取到的网页被放入等待队里,先入先处理。处理队列(ProcesSUI ):这个队列存放的是正要处理的网页,网页爬虫程序开始处理的网页,都是从这个队列读取的,同一个网页不会重复放入这个队里,避免被重复处理,浪费时间造成信息冗余。当这个队列里的网页被处理之后,被取出添加到错误队列或者完成队列中。错误队列(ErrorURL):如果网页爬虫在处理某个页面的时候出现系统错误,比如网页错误,那么这个网页就被直接投递到错误队列,被放入错误队列的网页将被视为无效网页,以后不会再对这个网页进行分析,这

36、样避免的资源的浪费。完成队列(LaunchURL):假如网页爬虫在处理网页时分析正常,没有发生错误,对这个网页分析提取信息之后,通常将这个网页添加到完成队列,同样,在完成队列中的网页也不会再被处理,避免资源浪费。也就是说对于四个队列,某一时间段某个网页只能存放在一个队列中,网页所处的位置反映这个网页的状态,一般情况下,人们都采用状态图进行计算机程序的描述,程序按照状态图,从其中的一种状态变换到另一个状态,实际上,当发现URL链接的时候,网页爬虫会判断该网页的状态,首先查看它是否之前被放入完成队列或错误队列中,如果网页位于这两个队列中的话,说明这个网页已经被处理过或者不需要作处理,这时候网页爬虫

37、不会再处理这个网页,相反,这个网页将被放入等待队里中,等待爬虫处理。通过队列的管理,可避免某个页面被多次重复进行分析的情况,有效利用资源,提高分析效率,同时也防止因为反复处理错误网页造成的死循环。3.网页信息截取本系统主要截取的有三种网页信息,分别是超链接、简历信息,包括姓名,日期,还有数据信息等等,根据页面的不同的标记,系统会自动识别出标记对应的信息,并把信息存放到数据库相应位置。4.5 功能实现数据抓取模块主要实现用户抓取数据信息的功能。信息爬取的实现过程主要分为4个步骤,分别为网页分析、处理列队、过滤、信息截取。而爬取到的信息类型主要有三种,分别为文本、图片、超链接,系统会根据不同的标记

38、信息自动保存到对应的位置。例如:图片会找到对应的img标签,同过该标签的链接就可以查找到该图片的位置。数据抓取功能模块实现界面如图4-3所示。图4-3数据抓取模块实现界面下面介绍网页分析的实现,下面为网页分析算法的部分代码实现。下面介绍网页队列处理的基本实现,以下为队列处理的部分核心代码。为了提高用户搜索的速度,在用户输入搜索关键词时,搜索框中达到第三个字符时,系统会自动把用户输入的关机信息传入到后台,进行模糊查询。本系统是通过dwr框架来实现的,dwr框架对ajax技术的一种封装,使用这样的框架能够非常方便的使用ajax技术。具体的实现如下:下面主要讲一下网页过滤的基本实现网页过滤的主要工作

39、是过滤掉自己不感兴趣网页。在这里只描述部分类实现,如下:下面为网页信息截取的基本实现,网页信息截取主要工作就是截取不同网页上的数据信息,如图片、文本、链接等信息。首先,需要建立HttpClient实体类,然后通过Element类,实例化网页的地址,该网页中,包含标题、文本、超链接等信息。在elerment类中有childNode方法,第一个节点是图片信息,图片路径是通过document.getElementById(largePic).attr(src)获取的。然后截取不同的信息保存到数据库中。具体实现参考代码如下。5 总结与展望本文主要阐述了如何利用R语言工具开发一个性能优化、可扩展性强和安

40、全可靠的爬虫系统。系统主要实现了信息搜索、信息处理等功能。然后根据这些功能进行分析设计,对所有到的技术Scrapy框架、数据挖掘、爬虫等技术进行简要的介绍。接着进行需求分析的描述。接着是概要设计和详细设计。描述这个系统的部分功能的实现方案及过程。本设计所实现的是一个爬虫系统,主要介绍了R语言、Scrapy等技术。系统按照需求分析、各个功能设计和代码分析,爬虫系统的基本功能已得到实现。由于时间及本人所学有限,该系统还有许多地方需要改进,并且还有许多自己未起到的功能,本人会在以后的学习过程中进一步加强和完善。参考文献1 李国慧.Web数据挖掘研究.数据库与信息管理本 J ,2011年1月12日.2

41、 王玉珍.Web数据挖掘的分析与探索 J .电脑开发与应用 2013年4月.3 张莉.基于模糊聚类的案例聚类算法研究 J .教育与教学研究,2009年4月.4 叶苗群.web日志挖掘研究.宁波工程学院学报 J ,2015年6月.5 Amato G, Bolettieri P, Falchi F, et al. Using Apache Lucene to Search Vector of Locally Aggregated DescriptorsC/ International Conference on Computer Vision Theory and Applications. 20

42、16:383-392.6 Beecham , Matthew.Global market review of front-end modules for passenger cars and light trucks - forecasts to 2017: 2010 edition: Appendix 2 Q&A with R语言J.Just - Auto, 2010, pp.32-35.7王艳红, 周军, WANGYan-hong,等. 基于Hadoop的网络爬虫技术研究J. 吉林工程技术师范学院学报, 2014, 30(8):87-89.8 孙易冰, 赵子东, 刘洪波. 一种基于网络爬虫

43、技术的价格指数计算模型J. 统计研究, 2014, 31(10):74-80.9 苏雷, 杜彦璞, 刘斌. 网络爬虫技术研究与分析J. 城市地理, 2016(6X).10 王超群. 网络爬虫技术研究J. 移动信息, 2016(6):00181-00182.11 朱丽萍.基于R语言的爬虫系统开发和实现J.电子科技大学,2011.12 吕勇.基于R语言的简易搜索引擎的设计与实现J.武汉理工大学,2012.13 赵本本, 殷旭东, 王伟. 基于Scrapy的GitHub数据爬虫J. 电子技术与软件工程, 2016(6):199-202.14 Myers D, Mcguffee J W. Choosi

44、ng ScrapyJ. Journal of Computing Sciences in Colleges, 2015, 31(1):83-89.15 Lange C N, Figueiredo A M G, Enzweiler J, et al. Trace elements status in the terrain of an impounded vehicle scrapyardJ. Journal of Radioanalytical & Nuclear Chemistry, 2016:1-10.致 谢四年的学习生活在这个季节将结束,但是在我的生命这仅仅只是一个逗号,我将面对的旅程的

45、另一个的开始。四年的求学生涯,以支持老师,朋友和亲戚,这只是困难的,但也得到一个完整的包,下一段付印之际,各种思想,感情不能平静。 首先想在论文写作中要感谢我的老师xxx给了我很大的帮助,他对我论文的严格要求,使我获得了很大的收获。以及深厚的理论知识,实践经验,严谨的治学态度和扎实的研究方法的影响和激励着我,让我一个不少。在这方面,我谨表示衷心的感谢和由衷的。其次,我要感谢专业课的所有老师们,是他们在我的专业课的学习过程中无私的教授给我许多专业知识和技能,使我能够在论文写作的过程中顺利解决难题和疑问。同时还要感谢所有给予我关心和帮助的同学和朋友们,她们在生活和学习中给了我大量的帮助,对她们的关怀和帮助致以崇高的敬意。在今后的人生道路上,我一定谨遵恩师的教诲,发挥自己的潜能。最后,对阅读和评审本论文的各位老师表示衷心的感谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号