面向社交网站的主题网络爬虫

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:ldfzcc
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:以豆瓣网站为代表的社交网络空前繁荣,传统的网络爬虫无法满足人们对社交网络信息的爬取及分析的需求,爬取与特定主题内容相关网页的主题网络爬虫便应运而生,该文设计并实现了面向豆瓣网站的主题网络爬虫,实现对豆瓣网站的特定主题页面的爬取。最后,验证了主题网络爬虫设计方案的可行性。
  中图分类号:TP393 文獻标识码:A 文章编号:1009-3044(2018)32-0251-03
  1 背景
  随着信息技术的高速发展,社交网络如Facebook、Twitter、豆瓣网等也逐步地渗透到网民生活的方方面面,用户可以在社交网络上表达自己的意见、态度、看法或情感[1]。社交网络承载着大量的舆情信息,使用网络爬虫可以对社交网络舆情信息进行有效地采集、组织和管理。然而,通用的网络爬虫面临着爬取信息内容繁杂、主题不清晰等弊端,为了以主题相关性地爬取页面,面向垂直领域的主题网络爬虫便应运而生[2]。
  一般来讲,网络爬虫是一种能够自动爬取网页并提取网页内容的程序,是构建搜索引擎的支撑技术之一[3]。在爬行策略上,主题网络爬虫与通用网络爬虫不同,主题网络爬虫通常以主题性和页面内容相关性作为网页搜索和爬取的依据,即能按照用户预定义的主题策略进行信息采集,其爬取页面具有大量相关性,页面的利用率更高[4]。
  豆瓣网站作为社交网站的典型代表,对社交网络产生了深刻的影响,该文以豆瓣网站为例,设计并实现了主题网络爬虫,能依据指定的主题采集豆瓣网站的相关信息。
  2 主题爬虫设计及实现
  2.1 主题网络爬虫的过程主要框架
  主题网络爬虫的系统架构如图1所示,主要包括页面下载模块、主题判别模块、调度模块等核心部分。页面下载模块主要完成从指定的Web站点中将页面下载到本地,主题判别模块是主题网络爬虫的关键核心模块,主要负责将判别待提取的页面是否与制定主体相关,将相关度高于一定阈值的页面加入下载队列。
  2.2 主题网络爬虫工作流程
  主题网络爬虫过程中,调度器、URL管理器、下载器、解析器与应用各功能模块相互配合协同工作。调度器在循环地向URL管理器发送命令,判断是否有待爬取的URL列表、在得到URL管理器的一个待爬取的URL时,启动下载器执行下载流程,下载URL所指向的页面,并使用解析器解析URL列表,获取有用的信息,调度器将爬取的信息传送给应用,使爬虫程序循环地执行,在循环的调度过程中,网络爬出持久化保存相关主题的页面数据。
  2.3 网络爬虫的URL管理器
  URL管理器管理待爬取的URL列表和已爬取的URL列表,防止重复爬取与循环爬取。URL管理器较好地避免了爬虫程序采集信息的冗余度,给爬虫的效率带来负面影响,具体来讲,URL管理器的主要功能如图2所示。
  爬虫程序使用关系型数据库如MySQL、Oracle等保存所爬取的页面,采用标准的SQL接口与数据库连接,使用Python内置的set( )方法对重复的数据项进行去重处理[5]。
  3 面向豆瓣网站的爬虫设计及实现
  3.1 爬虫的网页下载器
  爬虫下载器主要使用Python自带的Urllib库进行开发,在Python 2.7.8版本中,所使用的是Urllib2库中的Urlopen函数,在网络爬虫的过程中设置response = urllib2.urlopen(request)语句,以取得网页的响应。Urlopen函数可用于打开URL,并获取URL数据。Urlopen函数的参数可以是URL链接,也可以使Request对象,对于简单的网页,直接使用URL字符串做参数,但对于复杂的网页,设有防爬虫机制的网页,在使用Urlopen函数时,需要添加Http header。对于带有登录功能的站点,需要设置Cookie,并模拟浏览器登录,之后再进行网页下载。
  3.2 爬虫的网页解析器
  网页解析器从网页下载器下载到的URL(Uniform Resource Locator,统一资源定位符)队列中提取有价值的数据和新的URL。对于特定数据的抽取,可以使用正则表达式或Python BeautifulSoup库等方法。正则表达式使用基于字符串的模糊匹配,适用于目标数据格式特征比较清晰和明确的场景,这也使得正则表达式方法在网页解析时的通用性不高,比如,每一项正则表达式都要重新设计,无法使用针对电影板块开发的爬虫程序爬取其他板块。而Python BeautifulSoup属于第三方模块,用于结构化解析URL内容。将下载到的网页解析为DOM(Document Object Model,文档对象模型)树,进而结构化解析URL。
  网络爬虫系统中页面解析流程如图3所示,详细步骤如下:
  1)首先访问网页初始种子URL,爬虫系统发出访问请求,取得服务器的信息并获取相关数据。为了爬虫的健壮性,若通过URL访问服务器,无法取得网页返回信息时,则返回错误;
  2)主题相关性判断,包括特征提取与权值计算阶段。在特征提取阶段,通过页面关键词频率,获得文档的特征,达到降维和提高分类精度的效果。该文采用支持向量机的基于文字内容来判断网页与主题的相关性;
  3)当网页访问成功后,网络爬虫开始爬取符合正则表达式的数据信息,并删除重复的冗余信息;
  4)在本地数据库中创建数据库表,将爬取到的信息持久化存储到本地数据库中;
  5)重复上述步骤,直到页面全部爬取完毕。
  主题网络爬虫程序具体实现过程中,网络爬虫爬取页面的过程如图4所示,详细步骤如下:
  1)设置askURL(url)方法,并将URL作为Request()方法的参数,构造Request对象;
  2)将Request对象作为urlopen()方法的参数,发送给远程服务器,获取网页内容返回列表;
  3)使用read( )方法读取远程服务器返回的页面信息;
  4)若在执行过程中未发生任何异常,则在执行完后返回HTML网页内容;
  5)若在执行过程中发生异常,则中断当前的执行语句的执行,跳转到对应的异常处理块中开始执行,终止应用程序并打印错误代码及其原因提要。
  4 系统测试
  为了验证该文爬虫的有效性,使用Python2.7在Win10操作系统上开发爬虫程序。网络环境是100Mbps带宽,以豆瓣网站为例,使用爬虫程序对豆瓣网站的指定主题进行爬取,分别选取读书、电影、音乐3个频道,对应的主题分别是“读书”、“电影”、和“音乐”,爬取的网页数量如表1所示。
  从上表可以看出,根据用户自定义主题和指定的初始URL,该文的主题网络爬虫能够爬取豆瓣网站的相关主题页面,这就验证了该文所设计的爬虫程序具有可用性。还可以进一步看出,在读书社区爬取的页面多达3万余条,验证了网络爬虫程序的稳定性。
  5 结束语
  不同于传统的网络爬虫,主题网络爬虫能针对特定主题提供个性化的信息爬取服务,是面向垂直领域的搜索引擎采集信息的基础支撑技术。该文首先研究了主题网络爬虫的工作原理及其流程,接着设计并实现了面向豆瓣网站的主题网络爬虫,最后实验验证了网络爬虫的可行性。
  参考文献
  [1] 胡亚楠. 社交网络数据获取技术与实现[D]. 哈尔滨: 哈尔滨工业大学, 2011.
  [2] 孙立伟, 何国辉, 吴礼发. 网络爬虫技术的研究[J]. 电脑知识与技术, 2010, 6(15): 4112-4115.
  [3] 于娟, 刘强. 主题网络爬虫研究综述[J]. 计算机工程与科学, 2015, 37(2): 231-237.
  [4] 黄永军. 面向垂直搜索的网络爬虫设计与实现[D]. 北京: 北京邮电大学, 2013.
  [5] 钱程, 阳小兰, 朱福喜. 基于Python的网络爬虫技术[J]. 黑龙江科技信息, 2016(36): 273.
  【通联编辑:谢媛媛】
其他文献
摘要:随着技术进步,人们已经进入互联网 时代。尤其是经济发达地区,人们的生活已经从过去的简单联网获取信息,转变为现今互联网 环境下的智能化生活。该文从百姓生活变化现象出发,分析了智慧社区内涵,总结出支撑智慧社区运行的基础核心支撑技术,提出了智慧社区的技术体系架构。  关键词:互联网 时代;智能采集卡;远程监控;WIFI  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(201
摘要:该文以认知学徒制为指导,基于Moodle平台设计了《英语学术论文写作》课程网络教学环境。以方法维度为主线,探讨教师如何利用Moodle的资源与活动进行双重研究情境创设,进行示范、指导和脚手架构建操作,学生如何通过平台上的组建实践共同体,在作业、讨论、聊天等活动中清晰表达,在分步骤写作实践的探究中反思,有效提高学生的学术论文写作能力。  关键词:Moodle;网络课程;认知学徒制;学术论文写作
摘要:针对应用型人才培养模式对大学生的要求,结合我校的“大学计算机基础”课采用分类教学的模式,提出基于大学本科毕业论文排版的实验教学实验项目,对激发学习积极性和促进大学生应用能力培养的积极意义。  关键词:大学;计算机;论文排版;实验  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)31-0202-02  毕业论文是指高等学校为對学生集中进行科学研究训
摘要:DDoS攻击的预防技术历经内核优化、专业抗DDoS硬件防火墙、云时代的DDoS高N-IP系统三个阶段。DDoS高防IP系统主要有良好的带宽
摘要:基于dsl8b20温度传感器具有体积小、硬件开销低、抗干扰能力强、精度高等优点。采用STC89S52单片机为控制核心,利用DSl8820溫度传感器采集大棚温度数据,经单片机处理后在kdl602液晶上显示,设計一种大棚温度监控电路。可以实现大棚温度的采集、温度控制和报警提示的功能。解决了温室大棚人工控制的准确度不高、费时费力等问题。  关键词:温度传感器;单片机;温室大棚;温度监控电路
摘要:课程建设是职业教育教学基本建设中最具基础性的核心工作,其水平、质量和成果不仅是衡量学校办学水平和教学质量的重要标志,也是推进教育创新,深化教学改革,提高教学质量的重要途径。该文针对《现代交换技术》课程教学过程中容易出现的问题,从更新教学内容、教学方法及手段、教学团队教学能力和考核方式等几个方面进行改革,提高《现代交换技术》课程的教学质量。  关键词:现代交换技术;教学改革;教学方法  中图分
摘要:该文以Web of Science数据库1999-2018年449条国外数字故事研究论文题录数据为研究对象,利用CiteSpace對其进行可视化分析。通过共引分析和共现分析,揭示了国外数字故事研究领域的发文量、发文期刊、关键词、关键文献、代表性学者等,并在此基础上揭示了数字故事研究前沿主题,揭示了近二十年国外数字故事研究的知识基础:数字故事的定义及内涵、数字故事以及教育数字故事制作的基本要素
摘要:论文介绍了利用python进行日常excel表格批量处理的方法,并以员工福利采购统计数据为例,编程实现了excel文件的批量读取、切片、计算、合并等功能。结果表明,采用python进行批量处理文件,简单高效,大大提高了办公的效率。  关键词:excel数据处理;python;pandas  中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)01-0228-02 
摘要:微课具有时间短、内容精、学习目标明确等特点,它更适合学生自主学习、移动学习、泛在学习。翻转课堂即反转传统课堂的教学模式,是一种全新教学理念。该文首先分析了当前高职院校网页设计课程教学现状,然后简单介绍了微课以及“翻转课堂”这两个有关概念,紧接着分析了实施的意义,最后设计在实践操作性强的高职院校课程中实施翻转课堂的流程,以《网页设计》课程为例进行实践,以此期望能促进高校教学改革。  关键词:微
摘要:当前,为满足国家战略和新兴产业发展需求,培养具有全球视野、创新精神和实践能力的复合型人才,促进多学科交叉融合的新型工程技术学科建设尤为重要。“一带一路”战略提出后,轨道交通类院校成为轨道交通领域人才培养的重要支撑。因此在新形势下,我校针对建设轨道交通特色高效的目标,对校内教学科研资源进行重整优化,对教学科研进行一些改革,通过这些改革,主动探索多资源多元化的新工科人才培养模式。  关键词:一带