大数据时代下网络爬虫技术的研究与应用

来源 :科学与生活 | 被引量 : 0次 | 上传用户:wiltonx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:随着大数据时代的来临,如何既快速高效又能大批量的获取所需数据成为大数据应用的一个重要问题,此时,网络爬虫技术显示出了它的优势。目前,国内外普遍使用的搜索引擎其实就是一种网络爬虫。网络爬虫通常仅仅下载网页内容的一部分,但是人们都希望下载的部分包括最多的相关页面,而不仅仅是一个随机的简单的站点。这就要求一个公共标准来区分网页的重要程度,这不仅與网页本身内容有关,与包含链接个数、访问数量等都有一定关系。而且这些爬虫程序大多都是后台保密的,因此大数据时代更加迫切的需要能够根据不同用户的不同需求设计出拥有有效搜索策略的网络爬虫。本文根据大数据时代下互联网应用对数据所产生的新需求,介绍了如何在提前设定抓取目标后,选择适当的网络链接,通过自行编写的网络爬虫程序将所需数据大批量地抓取出来。便于用户运用所获取的数据,通过相应的数据分析手段进行整理、挖掘,从而分析、决策。
  关键词:网络爬虫;数据;程序;
  在这个大数据时代,人们对数据的应用达到了前所未有的高度,截至2020年,人们产生的数据已经接近或超过了40ZB,而这些数据中很多都通过Web网页呈现。通过获取并分析这些数据可以帮助用户进行市场分析提前进行风险预警,同时也可以帮助用户进行管理决策从而留住自己公司的客户。
  一、数据获取的常见方式
  用户数据的获取有很多种方式,其中比较常用的主要包括通过已有的数据库进行查询,或者采用搜索引擎直接搜索等。其中前者技术已经十分成熟,数据也容易获得,但是这种方式一般需要专业人士进行维护,成本较高,同时随着数据量增多维护成本也直线上升。同时这种方式耗费硬件也很难做到跨多域。而后者(如百度、谷歌等)的优点是软件免费,使用简单,可是针对用户的不同需求难以定制,在进行数据分析时用户很难直接搜索到自己想要的数据。
  因此,如果想根据不同用户需求设定数据获取目标,就需要自己搭建网络爬虫框架,编写网络爬虫程序将所需数据大批量地抓取出来,然后通过相关工具对数据进行统计分析。
  二、网络爬虫的工作原理
  网络爬虫其实是一个自动提取网页数据的程序,它从一个或多个初始网页的URL开始,先获得初始网页上的URL,再在抓取网页的过程中,不断从当前页面上获取新的URL放入队列,直到满足一定条件后停止[1]。它包括协议处理、URL处理、内容检测三个模块。其中协议处理模块为网络爬虫在爬行时提供必要的网络协议,URL处理模块和内容检测模块将会对已经爬取的网页进行去重。同时,所有被爬虫抓取的网页将会被系统存储,进行相应的分析、过滤,然后建立索引,以便之后的查询和检索。
  通常网络爬虫再进行网页数据抓取时可以采用深度优先或者广度优先策略。深度优先被视作递归过程的一种,当爬虫以顺沿的形式向节点树以纵方向分布时,网页遍历图中不存在已访问的节点,它需要占用较大系统内存。广度优先则是爬虫以顺沿的形式向节点树宽度方向分布,抓取初始网页数据中所有信息,随机选择一个网址,并重复该过程,它的抓取效率相对较高[2]。
  三、选择适合的开发技术
  为了让所编写的网络程序跨平台、可扩展。并且为了方便用户使用,希望实现在爬取互联网中不同的网络站点和链接中的数据时,只需要对其中的核心算法进行修改即可。
  目前运用python进行网络爬虫程序编写非常流行,它用运多线程,下载速度比较快,但是在解析网页时,python并没有比NodeJS快。本项目采用JavaScript语言编写,运行时需要使用NodeJS。通过CSS选择器和HTML分析找寻需要爬取的URL地址。为了获取数据样本的数量达到参考要求,在广度优先算法思想的基础上采用最佳优先搜索策略,按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。它只访问经过网页分析算法预测为“有用”的网页。
  四、编写网络爬虫程序
  用网络爬虫获取网页信息其实就是把URL地址中的网络信息读取出来,并且保存到本地[3]。网络爬虫一般需要包括信息采集、信息提取、索引以及数据库等模块。模块之间需要协调分工,保证每个模块都能实现它需要实现的功能,同时,它们之间又有一定的工作流程,别入触发后面模块开始实施的条件就是前面模块任务的完成。在整个爬虫架构中,信息收集中的搜索策略和信息抽取模块所涉及的主题相关性的判断是最重要的部分,它们共同决定了使用网络爬虫是否可以准确地抓取用户真正需要的数据。
  1、当需要爬出页面中所有的链接地址时,可以采用如下的程序。
  var url=" https://search.jd.com/Search?keyword=%E5%8C%BB%E5%AD%A6&enc=utf-8&wq=%E5%8C%BB%E5%AD%A6&pvid=5d4df2bcfc9d400e8c2b31c57aac3e5c ";
  //选择某个一页面(此处仅为举例说明,网络爬虫在爬取数据时需严格按照网络安全要求规范使用)
  var http=require('nodegrass');
  var cheerio=require('cheerio');
  var todolist=[]; //定义一个数组
  try
  {
  http.get(url,function(body,status,headers){
  var $=cheerio.load(body);
  $("a").each(function(){var href=$(this).attr("href");
  //将该页面中所有的a标签都爬出来,并分别将其中的href值取出来。   todolist.push(href); //将href分别推入数组。
  });
  say(todolist);
  },'utf8');
  }
  catch(ex)
  {
  say(ex);
  }
  function say(word)
  {console.log(word);}
  2、當需要爬完一个页面中的所有超链接再继续爬取每个超链接页面中的超链接时,就是递归,此时的程序代码需要进行调整,具体如下:
  var url=" https://search.jd.com/Search?keyword=%E5%8C%BB%E5%AD%A6&enc=utf-8&wq=%E5%8C%BB%E5%AD%A6&pvid=5d4df2bcfc9d400e8c2b31c57aac3e5c ";
  var http=require('nodegrass');
  var cheerio=require('cheerio');
  var todolist=[];
  var index=0;//此处除了定义数组之外,还需要定义一个索引号。
  go(url); //执行go函数
  function go(url)
  {
  try
  {
  http.get(url,function(body,status,headers){
  var $=cheerio.load(body);
  $("a").each(function(){var href=$(this).attr("href");
  todolist.push(href);
  });
  index+=1; //索引自加1,此命令忽略了索引为0的当前页面,从第二个页面开始爬取。
  say("当前页面是:"+url+"这是第"+index+"个链接,队列现在一共有"+todolist.length+"个链接");   //显示整个数组,此时显示的是该页面的所有链接地址。
  if(todolist.length>0)   //如果todolist里面的内容非空,则跳下一个链接
  {go(todolist[index])};   //递归,在go函数中继续执行go函数,从而实现超链接页面中的超链接页面的递归抓取。
  },'utf8');   }
  catch(ex)
  {
  say(ex);
  index+=1;
  go(todolist[index]); //如果前面某个页面执行出错,索引加1,直接执行下一个页面
  }
  }
  function say(word)
  {console.log(word);}
  四、网络爬虫的实现
  在数据获取的过程中,可以根据自身情况修改相应的程序代码,从而实现不同的抓取目的。比如这里想抓取京东上某个出版社在售的书名、价格等信息,则需要选择先将相应的商品链接地址复制到程序中,调用爬虫获取书籍资料。编写程序将批量数据插入数据库保存,然后启动程序执行数据爬取,在整个抓取过程中,数据库会不断更新,直至抓取完毕,如图1所示。
  五、结语
  随着大数据时代的发展,企业和个人对数据的需求都急剧增加。而如何能快速、跨地域的获取相对准确而又有价值的数据,网络爬虫技术无疑是最适合的方法。同时,随着网络数据的规模化、全面化和及时化发展,基于分布式计算的网络爬虫技术的应用迫在眉睫。网络爬虫技术的应用趋势将出现大规模的分布式系统,网络数据抓取也将日趋多元化、个性化发展[4]。
  通过使用网络爬虫,人们可以方便的爬取所需的数据,便于研究分析,从而对未来进行推测或进行某种决策,这在大数据时代下是非常有意义的。但是网络不是法外之地,我们在使用网络爬虫时也需要注意无论是个人使用,还是科学研究和商业用途,必须遵循合法、合规的要求[5],更不要运用网络爬虫去做损人利己的事情。
  参考文献
  [1]卢江.基于爬虫技术的图书购买推荐与比价策略研究[J].科技资讯,2021(1):214-219.
  [2]谢蓉蓉,徐慧等.基于网络爬虫的网页大数据抓取方法仿真[J].计算机仿真,2021,38(6):439-443.
  [3]缪治.网络爬虫技术的研究与实现[J].中国新通信,2019.21(6):70.
  [4]顾勤.网络爬虫技术原理及其应用研究[J].网络与通信技术,2021(4):174-176.
  [5]李文华.解析网络爬虫技术原理[J].福建电脑,2021,37(1):95-96.
  作者简介
  [1]杜晓春(1982 - ),女,四川绵阳人,西安欧亚学院副教授,研究方向:计算机网络技术与创新人才培养。
  [2]陆涛(1999-),男,陕西汉中人,西安欧亚学院通信工程专业2021届毕业生,现就职于陕西安康市石泉县供电分公司。
  基金项目
  2017年陕西省教育厅项目“大数据时代下网络爬虫技术的研究与应用”(17JK1038)
其他文献
摘要:我国铁路运输最重要的交通工具之一就是铁路机车,其在客运和货运方面发挥出了巨大的作用,如果铁路机车出现了故障,就会给社会经济带来极大的损失,情况严重的还会出现人员伤亡,并对社会造成恶劣影响。所以需要从各关键部分入手,对铁路机车的质量实施更强有力的缺陷检测,如此能够为铁路交通运行提供重要的安全保障。  关键词:铁路机车;整体车轮缺陷分析;超声波检测  由于超声波探伤技术的优势有许多,各个领域都将
期刊
摘要:随着互联网时代的来临,计算机技术被应用到社会生活的各个方面,作为新兴技术,计算机技术在许多领域、行业都有着广泛的应用,并且正在逐步改变人们的生活。计算机技术的优势非常明显,在技术日益发展的今天,计算机应用技术也进入了创新发展的重要阶段,可以克服传统单一技术的限制,解决各种技术问题。  关键词:新形势;计算机应用技术;创新技术分析  随着当前人类生活的变革和发展,人们越来越依赖计算机技术,计算
期刊
习近平总书记在“七一”重要讲话中提出了伟大建党精神,并具体阐释了其深刻内涵,“坚持真理、坚守理想,践行初心、担当使命,不怕牺牲、英勇斗争,对党忠诚、不负人民。”这32个字的伟大建党精神是中国共产党的精神之源,习近平总书记指出:“中国共产党弘扬伟大建党精神,在长期奋斗中构建起中国共产党人的精神谱系,锤炼出鲜明的政治品格。”从过去的红船精神、井冈山精神到现在的伟大抗疫精神、脱贫攻坚精神,中国共产党人在
期刊
摘要:当前市场竞争背景下,人力资源成为企业发展的核心竞争力,有关于人力资源管理的工作也逐渐成为企业日常管理中的重点。绩效考核作为人力资源管理的重要手段,在帮助企业了解员工发展情况、督促员工自我建设的同时,能够实现企业资源的有效配置,推动企业核心竞争力的提升。本文主要探究当前我国企业人力资源薪酬管理中绩效考核存在的问题,并提出相应的优化措施,旨在充分发挥绩效考核对于员工管理的积极作用,提高企业人力资
期刊
概要:本文是利用自行设计的太阳能电动车充电系统安装在普通电动车上,将太阳能电池板输出的直流电,通过控制器内部调压装置,调节出充足的电能供蓄电池充电,使太阳能提供主要动力成为了可能。设计过程利用电工电子技术相关知识,完成了充电控制器的设计。在加工过程中,同学们利用所学的数控车工、数控铣工、钳工、焊接等加工方法,自主完成了充电控制器的组合与安装,成功的投入了实际使用。  1研制背景及意义  1.1背景
期刊
摘要:数控机床属于一体化的机电设备,并且也是整个系统建设的核心内容,系统运行的可靠性会影响设备的运行质量,如果在数控机床运行时存在较为严重的质量问题的话,那么要采取更加科学的故障诊断方案和维护措施,并且加大设备的全过程维护,从而使设备运行效果和水平能够得到全面的提高。本文论述了数控机床电气控制的故障诊断方法以及维护措施。  关键词:数控机床;电气控制;系统故障;故障诊断;系统维护  一、数控机床电
期刊
摘要:经济社会的发展,计算机技术和网络信息技术在社会中的影响力越来越大,但是在计算机技术深入发展的同时,也存在网络信息安全问题。网络本身的开放性特点,影响到计算机数据的安全。因此,在计算机技术应用推广的过程中,也要重视对计算机网络安全问题的探讨。本文主要分析了计算机网络安全技术,并探讨了计算机网络安全防范的措施。  关键词:计算机;网络;防范  1计算机网络安全的相关建议  计算机是一种数据处理的
期刊
摘要:化工行业的发展对于国家的国计民生的发展有重要影响作用,化工行业的发展对于国家的国计民生是一个重要的保障,受到了人们的高度关注。在现阶段,质量检测是化工产品质量管理的核心,而质量检测是一个复杂、系统的工程,与众多的化工产品相配套,其质量检测存在诸多问题。在此基础上,分析了目前化工产品质量检验中存在的问题,并阐述了标准化的保证措施。  关键词:化工产品;产品质量;质量保证;标准化建设  随着社会
期刊
摘要:随着我国当前科技水平的不断提高,越来越多新的智能化设备在建筑施工中得到了广泛性利用,不仅提高了建筑的科技感,还为人们的生活学习提供了高效便捷的服务。在建筑安装时,智能化设备属于不可或缺的组成部分,但是在具体实施时所产生的问题也是比较多的,因此在实际工作中需要优化智能化设备的安装流程和安装工艺,本文论述了智能化设备在安装中的问题及解决方法。  关键词:智能化设备;建筑安装;安装工艺;解决方法 
期刊
摘要:“十三五”期间,家具行业在整体提升、加快转型、稳定发展等方面取得了进展,是家具行业全新的发展阶段。目前,我国家具行业家具行业由成长期将转入成熟期,处于深化调整期,企业转型升级加速。周村是鲁商发源地,已初步形成丝绸纺织、机电设备、轻钢结构、精细化工、耐火材料、沙发家具六大支柱产业,其中软体家具流通市场在全国同行业中名列前茅。本研究旨在为加快推进周村区家具行业转型升级,引导家具产业健康发展,进一
期刊