首页范文网络爬虫基本原理十篇网络爬虫基本原理十篇

网络爬虫基本原理十篇

发布时间:2024-04-25 19:45:07

网络爬虫基本原理篇1

关键词:搜索引擎;网络爬虫;实现;设计;主题

中图分类号:tp393文献标识码:a文章编号:1009-3044(2016)17-0023-02

abstract:intheinformationage,theinternetisfullofallaspectsofourlives,andtheapplicationofthesearchengineforourlifebroughtgreatconvenience.theresearchontherealizationofwebcrawlerinsearchengineisofgreatsignificancetoimprovetheefficiencyofsearchengine.thispaperanalyzestherealizationofthewebcrawlerinthesubjectorientedsearchengine,andputsforwardthecorrespondingmethodsandmeasures.

Keywords:Searchengine;webCrawler;implementation;Design;theme

1概述

使用搜索引擎,人们可以方便快捷地在网上获取有用信息。随着大数据时代的到来,传统的通用搜索引擎面临着索引规模、更新速度和个性化需求等多方面的挑战。主题搜索引擎以提供分类精细、数据全面、更新实时的搜索服务为目标。网络爬虫是搜索引擎的基础模块,是搜索引擎的重要基础。

网络爬虫是一种能自动提取网页内容的程序,利用网页信息格式进行网页分析,也可以定期搜集某个或某些网站的内容,跟踪网站的发展历程。随着网络爬虫技术的快速进步,网络爬虫更加广泛地运用于网站结构分析、个性化信息获取以及用户兴趣挖掘等多种服务中。

2主题搜索引擎简述

搜索引擎是一种用来在万维网上检索资源文件的计算机程序。搜索引擎根据用户输入的检索关键词推测出用户的查询意图,然后快速地返回相关的查询结果信息供用户使用。

大数据时代互联网数据爆炸性地增长,急切地需要一种快速、准确细致、全面深入且更新及时的信息检索方法。主题搜索引擎克服了传统搜索引擎的诸多困难,使信息检索变得更加精确细致,使搜索到的信息更加全面深入,同时使专题信息和学科信息的更新更加及时。

3网络爬虫简述

网络爬虫从一个初始URL队列开始,从中获取一个URL,获取网页,从网页中提取所有的URL,并将新的URL添加到URL队列中。然后网络爬虫从队列中获得另一个URL,重复前面的过程,直到达到停止条件。这种爬取资源的方式存在着网络连接不稳定、网页特征多样化、URL不规范等一些问题。

4网络爬虫分类

第一个网络爬虫是美国麻省理工学院的学生matthewGrey于1993年写成,后来改进了爬虫程序并将其引入到搜索引擎中。随着搜索引擎技术的不断进步,爬虫程序也越来越复杂,后来产生了通用爬虫、限定爬虫和主题爬虫等几种不同类型的爬虫。

4.1通用爬虫

基本原理上文已分析,但爬取的范围过大,爬取顺序要求低,对爬取速度和存储空间要求较高。

4.2限定爬虫

限定爬虫是一种能爬取用户感兴趣的某一类网页的爬虫程序。但它不要求爬取所有的网页,只需爬取某些特定种类的网页即可。工作过程是:采用朴素贝叶斯方法用网页样本训练一个文本分类器,然后用这个文本分类器指导爬虫的偏好,从爬虫队列中选择出用户感兴趣的网页。

4.3主题爬虫

主题爬虫先确定一个或多个主题,根据一定的分析算法过滤与主题无关的URL,保留与主题相关的URL并将其放入等待URLs队列中;然后使用某种搜索策略从等待队列中选择下一个要抓取的URL,并重复上述过程,直到达到某种停止条件。

首先主题爬虫需要判定当前抓取与设定的主题的相关性,其次主题爬虫采用按相似度大小抓取网页的策略来抓取网页。相比通用爬虫它极大地节约了硬件和网络资源,加快了爬取速度,还可以满足人们对特定领域的需求。

5主题爬虫的爬取策略

主题爬虫以通用网络爬虫为基础,在此基础上进行优化和扩展,使其具备主题网络爬虫特有的功能,进而实现面向主题的网页信息提取。

主题爬虫尽可能搜集与主题相关的网页,减少下载无关网页的可能。主题爬虫与通用爬虫相比需要解决以下问题:主题的描述和定义、网页内容与主题相关性的判定、链接重要程度的判定、如何提高主题爬虫资源覆盖率。

面向主题的信息采集系统可分为4个部分,即主题集选取、web信息提取、页面预处理、链接过滤。

5.1主题集选取

主题网络爬虫中,为有效进行剪枝和过滤操作,需要对主题进行定义或描述,以此来确定采集的方向,主题集的好坏直接影响到了最终的采集效果。主题可以是几个关键词,还可以是自然语言。用户可以自己定制主题,对主题做进一步的描述。主题集的合理选择是主题爬虫的基础。

5.2web信息提取

从采集起点开始,主题爬虫开爬取web上的信息资源,通过各种web协议自动爬取站点的有效信息。为了高效地获取信息,主题爬虫系统中大多都采用了多线程的方式来提取web信息。

5.3页面预处理

把主题爬虫抓取到的web页面规范化,主要包括:页面语法分析,页面去噪等操作,提取网页中的有效信息,然后判定网页信息的主题相关性,过滤与主题无关的页面,从而提高主题爬虫的主题信息提取的准确性。

HtmL网页内容可以从正文、标题、标记信息、链接信息等方面反映。因此,对网页信息的提取只需将这些特征信息提取出来。读取页面时,找到标记,将标记中间的内容中的所有标记去除,就得到了页面正文;标记中的内容就是网页的标题,它显示在标题栏中。

即使提取的URL通过了主题相关性判别,提取到的页面内容与设定的主题也可能有很大差距。所以,在页面提取之后应对页面信息进行与主题相关性判别,淘汰与主题无关页面。

5.4链接过滤

要提高主题web信息的提取速率和准确性,系统需对采集到的Ui进行URL和主题的关系的判定,叫做链接过滤,或链接预测。

链接过滤常用的算法是epR算法。在链接关系的基础上加入针对链接的相关主题的权重,再引入链接网页之间的主题相关度权重,使产生的重要页面是针对某一主题的,这形成了epR算法。

6结束语

网络爬虫的发展为搜索引擎的成功奠定了坚实的基础,然而随着互联网技术的迅速发展,人们对搜索引擎的需求越来越大,信息检索服务也在向着个性化、精细化的方向发展,人们对网络爬虫的进一步设计优化提出了更高的要求。

主题爬虫核心问题是主题页面群的采集和无关页面的过滤问题。网络爬虫具有重复性,如何将页面动态变化的规律与先前的搜索统计结果相结合,提高爬取效率是一个值得研究的问题。目前网络爬虫采用的搜索策略都较固定,缺乏适应性,如何提升爬虫的自适应性有待进一步研究。

参考文献:

[1]刘金红,陆余良.主题网络爬虫研究综述[J].计算机应用研究,2007,24(10):26-29,47.

[2]盛亚如,魏振钢,刘蒙.基于主题网络爬虫的信息数据采集方法的研究与应用[J].电子技术与软件工程,2016(7):168-169.

[3]梁萍.搜索引擎中网络爬虫及结果聚类的研究与实现[D].中国科学技术大学,2011.

[4]于娟,刘强.主题网络爬虫研究综述[J].计算机工程与科学,2015,02:231-237.

网络爬虫基本原理篇2

作为数字图书馆建设的重要方面之一,数字资源建设可以利用主题爬虫对网络中所蕴含的数字资源进行自动化搜集。主题网络爬虫是主题搜索引擎的重要构成方面,本文以本体指导主题爬虫进行数字资源的建设,实验结果显示:以主题爬虫为基础进行数字资源建设具有一定的实用价值,但性能有待进一步提高。

【关键词】主题爬虫数字资源本体建设

【关键词】主题爬虫数字资源本体建设

数字资源在教育及科研等多个领域均具有举足轻重的作用,图书馆是教学及科研的信息中心,因此,数字资源建设也是数字图书馆建设的重要方面之一。万维网的推广与应用使其成为数字资源的主要来源之一,但是,由于其海量化、异构化、增长快速化、半结构化、动态更新化等特点,导致手动搜索数字资源变得越来越费时、费力,主题爬虫有效解决了这一问题。

1主题爬虫的概念与分类

所谓的“主题爬虫”,指的是利用不同链接及爬取策略,从制定的主题资源入手,对各网页链接进行分析,并对主题相关度进行计算,去除同主题不相关的资源及信息,保存同主题相关度较高的资源,有选择性的爬取网页。理想情况下,好的主题爬虫可以准确分析网页主题相关度,因而运行效率更高、更准,可以快速搜索到用户所需资源。

根据不同的排序算法,可将主题网络爬虫分为三大类,即经典爬虫、语义爬虫、智能爬虫。其中,经典爬虫主要利用的是网页文本的内容、结构及两者相结合,对URLs排序优先值进行计算,再进行降序排列;语义爬虫利用的是本体相似度对URLs排序优先值进行计算,再进行降序排列;智能爬虫利用人工智能计算方式,对URLs排序优先值进行计算,再进行降序排列。

2主题爬虫关键技术分析

2.1爬行策略

主题爬虫搜索策略是按有规则的、预先安排好的方式对网页进行搜集,爬虫对网络节点爬行方式是按照一定的次序,有目的性地进行抓取,因而可使爬行方式更科学、目表更明确,且可以对爬行路线进行有效辨别及解析。整体而言,主题爬虫搜索策略包括两种,即宏观策略和微观策略。前者针对的是如何对数据库中的保存页面更新进行宏观分析、描述,爬虫周期性连续工作,由于页面获取数量及数据库资源的有限性,导致爬虫也需要周期性地抓取页面,其每循环一周期,就可对传统数据库信息进行获取和更新,且出去所有相同页面,对页面信息缺乏的予以补充,如此循环往复下,确保页面库所有数据尽可能为最新的信息,提高了系统查询功能的及时性与综合性;后者搜索策略偏重于对爬虫实际网页获取步骤进行研究,包括爬行规则、运行方式等。关键在于对爬虫路径及规则进行预先规定,确保爬虫可以根据预先设定的方式爬取网络节点,以便更好地对爬虫行为进行预测和控制,实现了爬虫效率的有效提升。对于多样化的搜索策略,其主要依赖于所设定的不同的爬行准则,各策略爬虫爬行目标网页并不一致,且爬行路径各不相同,通常结合多重因素的制约,寻找更有针对性的搜索策略。

2.2获取网页

爬取网页是主题爬虫最先需要实现的操作,由于网页存在于网络多服务器上,因此,主题爬虫需要先对网页进行搜集。要想将网页从服务器上进行抓取,必须遵循网络相应的通信规则。应以Http超文本传输协议为依据,结合互联网通信原理完成,在网页解析时利用的是HtmL语法进行分析,实现了网页的获取。

2.3主题相关度

首先,需要从网页中对信息资源进行提取。在此过程中,主题爬虫系统预处理模块将HtmL文本转换为数据流形式,并读入内存中,以所对应内容为依据,执行相应的操作过程,然后对HtmL网页的文本予以准确分析,获取正文文本以及超链接信息,为相关度分析提供了依据。例如,在超链接提取时,网页解析器先根据文件集合获取页面,对页面的类型予以判断,只处理“text/html”类型的页面;依次读取缓存数据流,一旦遇见等标记,将其URL链接记下,并提取为说明文字,用以解释该超链接;将保存的超链接进行格式处理;对URL锚文本进行存储,对网页相关度进行计算;链接提取完毕。

其次,需要进行中文分词。中文分词指的是将汉字序列进行有效切分,成为单独的词,此过程需要根据所设置规则,将连续性的字序重新结合为新词序列。分词算法主要包括三类,即根据字符串匹配与否进行分词算法、根据机器理解进行分词的算法、以人工统计为依据进行计算的分词算法。虽然分词算法已经十分成熟,但要想利用电脑实现中文分词并非易事,需要对歧义、新词进行识别,可利用3GwS分词系统来进行。

3主题爬虫视角下数字资源的建设分析

鉴于传统以链接分析为基础的方法缺乏必要的语义分析,为此,应充分结合网页链接结构及其语义性,以本体为基础,对URL队列进行排序,以便为主题爬虫的搜索方法及基于主题爬虫基础上的数字资源建设提供指导。

3.1本体结构

本体是指用于人、数据库及应用间信息的共享,不断加强人和计算机之间的相互协作,因而在诸如数字图书馆、信息检索等领域得到十分广泛的应用。计算机领域将本体定义为六元组o={C,aC,R,aR,H,X}。其中,C为概念的集合。aC代表多属性集合共同构成的集合,各属性集合分别对应某个概念。R为关系集合,aR指的是由多个属性集合共同构成的集合,其中各属性集合分别对应R中的某个关系。H代表概念相互之间存在的层次结构关系,X为公理集合。

本体的直接目标即获取,对相关领域的知识进行描述,提供对该知识的理解,对该领域都认可的词汇进行明确,并分别从各层次形式化模式上对此类术语及相互间的关系给出清晰的定义。对于语义网而言,本体属于核心元素,可用以对信息进行结构化,确保用户及计算机可以对所需信息进行访问,实现相互间的有效合作。由此可见,本体在网络交互、访问及通信中具有十分重要的作用,将本体思想充分应用于主题爬虫模型中,可以有效提高网页搜索与抓取的准确性。

3.2基于本体的主题爬虫

以本体为基础的主题爬虫主要包括两大部分,即本体和网页抓取两大系统。前者主要由知识工程师负责驱动,利用初始本体的定义对目标进行抓取。针对抓取的处理结果,为用户提供相应的文档列表,同时,建议用户对已存在本体予以增加;后者主要是由主题爬虫构成的,它们可以对网络进行自动检索与抓取,并同本体进行连接,用以明确网页相关度。利用相关度计算,为用户选择并提供相关的文档,并在文档及网页上提供相应的元数据,以便利用搜索进一步确定链接。此框架共分为用户交互、本体管理、网页抓取、预处理及网页相关度五大模块。

(1)用户交互。工程师为有效的抓取提供输入,初始本体为主题爬虫所依赖的背景知识,一般而言,本体已存在于知识管理体系中。若有特殊要求,用户可自主对相关度计算方式进行调整。用户需要对初始URLs进行定义,还需对不同的抓取结果进行相应的处理,针对文档列表中出现频率较高的词项及其相互间的关系,将术语相应地添加至其本体中。

(2)网页抓取。爬虫由给定某个链接集开始,根据链接权重相应地进行检索,此类网页被传至下个模块――预处理模块。为保障检索的平滑性,充分利用了链接缓冲、网页缓冲、平行检索线程等技术。因镜像站点以及重定向链接,需要对链接及文档列表进行核查,以避免重复抓取网页。

(3)预处理。该模块下,规格化文本主要利用的是浅层文本预处理技术,在实现过程中采用的是porterstemming算法。该系统结构模块方法允许用户利用诸如iCtCLaS、Gate、SmeS等更为成熟的处理技术。

(4)本体管理。主题爬虫是利用背景知识对网络搜索进行聚焦,通过提供一致性检验或图形方法,为用户本体工程化提供支持。

(5)网页相关度。该模块属于整个体系方法的核心模块,一般而言,网页相关度主要用以对网页文档内容及本体进行匹配,以获取相应的总相似度值,利用余弦算法进行相应的相似度测量:

设字符串s1和s2,对两字符串相似度进行比较,假设s1和s2中有n个字符,分别为c1,c2,,对字符串相似度,对转变为其对应向量v1,v2间的夹角进行判断,所得余弦值越大,表明向量间夹角越小,因此,s1比s2具有更大的相似度。

3.3建设数字图书馆资源

主题爬虫可以从网络中抽取高质量的数字图书馆信息资源,进一步补充数字图书馆,以便为用户利用文档提供相关信息,有效增强了图书馆的关联与推荐功能。以主题爬虫为基础的数字资源建设模型如图2所示:

(1)从数字图书馆中对相关文档及文档集进行选取;

(2)对文档及文档集等一一进行抽取、解析,应注意所抽取的信息主要有作者的姓名、主要联系方式、标题、摘要、关键词以及参考文献等内容,并将此类信息作为相应的特征项。若存在多个文档,需要利用此类信息对多文档进行关联,发现交叉或相同特征项。如,可识别常用词句,或常引用文献,本文只能从单一文档中对特征项进行抽取;

(3)充分利用被解析信息,通过搜索引擎进行查询。如,可分别利用标题及作者信息进行查询,将所返回的前些结果作为希望获得的正例信息,可利用过滤法将错误实例予以去除;

(4)根据搜索引擎所返回正例,对本体进行自动化构建。在构建及取得本体的过程中,多数本体均由手工产生,此法费时、费力、易出错,还不易进行维护与更新。为此,本文利用本体学习这一同人工智能交叉的技术,以便开发时可以实现本体的自动化构建,减少取得本体知识时的所需成本,本文提出了一种面向网络资源的自动化构建技术,通过挖掘网络web语料文档库,实现本体学习过程,如语料库、文档的预处理、候选概念的抽取、抽取语义关系、选择术语、构建分类系统、构建本体及剪枝。其目标主要包括如下:从web文档自动取得相关术语及相互关系,利用机器学习法对概念对语义之间的关系予以明确,利用概念及语义关系构建相应的本体;

(5)利用本体对主题爬虫进行指导,作为一种形式化共享模型,本体及其事实可为机器读取,本体所包含的为领域共同认可的知识,本体为爬虫提供了清晰的背景知识及搜索主题,可以有效提升网页的抓取效率及准确率;

(6)当爬虫将网页搜集完成后,利用词汇分析及链接分析,对其中所具有的结构化关联信息予以充分挖掘,例如,潜在社区及其相关描述等。分析结果采用的是交互式图表形式进行显示,其中,对爬虫所发现的潜在社区、群体及相关权威度进行了描述。

3.4实验与评价

利用具体的实验,可显示数字图书馆资源建设中主题爬虫的应用性能。先从知网中随机下载了一百篇caj格式的论文。利用所解析的论文,抽取相应的元数据信息,例如,标题、作者信息、摘要、关键词、参考文献等,在实验过程中,利用标题及参考文献相关标题,对各篇论文利用google应用程序接口予以快速搜索,将返回的前十条结果作为正例。从正例中对本体进行自动化构建,利用本体对爬虫进行指导,根据宽度优先等原则进行搜索。

针对结果评价,采用的是收获率测度:hr=#r/#p,hr∈[0,1]。#r为相对满意的网页,#p为所有检索网页。所得收获率越高,满意度也越高,否则,主题爬虫费时搜索过程将仅仅是将不相干的网页过滤掉。在评价时,若论文相应网页中包含其关键词及主题词,则认为其为相对满意的网页。最后所得收获率为53.7%,结果显示:以主题爬虫为基础进行数字图书馆资源建设具有一定的实用价值,但性能仍有待提高。

4结束语

总而言之,主题网络爬虫在网络数字资源搜索过程中的自动化与便捷化,使其在数字图书馆资源建设方面得到了十分广泛的推广和应用。除了在数字图书馆资源建设方面的应用以外,主题爬虫在以web为基础的行业分析,商业在线竞争分析等多个领域,均有广阔的应用前景。

参考文献

[1]李晓明,闫宏飞,王继民.搜索引擎――原理、技术与系统[m].北京:科学出版社,2008.

[2]ChakrabartiS,Bergmvanden,DomB.Focusedcrawling:anewapproachtotopic-specificwebresourcediscovery[J].Computernetworks,2009(11):1679-1693.

[3]林振洲.VFp技术在网页数据采集中的应用--以高校数字资源建设为例[J].计算机光盘软件与应用,2013,(14):56-58.

网络爬虫基本原理篇3

关键词:搜索引擎;websphinx网络爬虫;超时;智能化

中图法分类号:tp393文献标识码:a文章编号:1009-3044(2008)28-0075-03

ResearchandimprovementofnetworkReptileBasedonwebsphinx

ZHoUXiang

(tongjiUniversitySoftwareCollege,Shanghai200000,China)

abstract:withthedevelopmentofinternettechnical,Searchengineisbecomingmoreandmorepowerful.therearealsosomefantasticsuccesscaseslikegoogleandbaidu.networkReptile,asanimportantpartofsearchengine,playanirreplaceableroleinit,especiallytheperformance.herewediscussaboutnetworkReptilebasedonanexistopensource――"websphinx",explainthestructureandsearchstyleofwebsphinx,andshowoutsomenewopinion.

Keywords:searchengine;websphinxnetworkreptilesinterface;overtime;intelligent

1引言

现如今,随着搜索引擎的普及,网络爬虫程序也越来越受到人们的重视,它的效率直接关系到搜索引擎的速度。作为搜索引擎三环节中的第一个环节,它的效率直接决定了搜索引擎的搜索广度,面对浩瀚一望无边的网络海洋,如果有一个具有高性能爬虫程序,可能就会达到能够遍历所有internet网页内容的理想状态,同样会解决每天与日俱增的无数的网页和旧网页的更新。

本文主要结合websphinx这个网络爬虫源程序来探讨一下关于爬虫程序的现状,该开源项目存在的一些问题以及一些可以改进的优化方案。

2websphinx基本原理

从一个基点网站出发,遍历其中的所有有用信息,同时抽去其中的链接信息放入队列,以待有空闲蠕虫(worm)时,从队列中读取,发出request请求,继续进行信息抽取和链接入队列的工作。

3源代码分析

入口为websphinx.workbench.workbench

主界面如图2。

输入startingURLs后,爬虫将以该网址为基点进行搜索

点击start后代码如下:

privatetransientpriorityQueuefetchQueue;//等待下载的链接队列

privatetransientpriorityQueuecrawlQueue;//已被爬出的但还未被处理链接队列

fetchQueue接收到网络应答和内容后则将链接加入crawlQueue队列

configureCrawler();//读取界面输入框中参数信息,准备以后搜索

……

threadthread=newthread(crawler,crawler.getname());

thread.setDaemon(true);

thread.start();//启动线程搜索

crawler是一个Crawler类对象,实现Runnable接口

publicvoidrun(){

……

synchronized(crawlQueue){

timertimer=newCrawltimer(this);

inttimeout=dp.getCrawltimeout();//dp:下载参数

if(timeout>0)

timer.set(timeout*1000,false);

intnworms=math.max(dp.getmaxthreads(),1);//拿到最大可用线程

worms=newworm[nworms];//爬虫对象

for(inti=0;i

worms[i]=newworm(this,i);

worms[i].start();//开启网页访问进程,每个网址对应一个爬虫

}

……

Label1:synchronized(fetchQueue){

for(inti=0;i

if(worms[i].link!=null)

fetchQueue.put(worms[i].link);

}

将爬虫对象爬到的网页对象,只要有,即装入抓取队列继续等待抓取

其中:

classwormextendsthread{

……

publicvoidrun(){

crawler.fetch(this);//关键点,

}

……

}

其中fetch()用于抓取网址对象

在fetch()关键为:process(w.link)

process方法:

//网页分类

for(intj=0,len=classifiers.size();j

Classifiercl=(Classifier)

classifiers.elementat(j);

cl.classify(page);

}

++numpagesVisited;

if(pagepredicate==null||pagepredicate.shouldacton(page)){

if(action!=null)

action.visit(page);

visit(page);

}

expand(page);//开始遍历该page中的所有链接

expand方法:

Link[]links=page.getLinks();

if(links!=null&&links.length>0){

for(inti=0;i

Linkl=links[i];

l.setDownloadparameters(dp);//设置下载参数

if(ignoreVisitedLinks&&visited(l))//已访问过(可能访问重复网页)

sendLinkevent(l,Linkevent.aLReaDY_ViSiteD);

elseif(。。。)//需要跳过

sendLinkevent(l,Linkevent.SKippeD);

elseif(page.getDepth()>=maxDepth)//超过最大深度

sendLinkevent(l,Linkevent.too_Deep);

else

submit(l);//访问网页(加入队列等待访问)

}

}

submit方法:

markVisited(link);//将此link标记为访问过的

synchronized(crawlQueue){

synchronized(fetchQueue){

crawlQueue.put(link);

++numpagesLeft;//剩余未处理的page个数加1

fetchQueue.put(link);//加入等待下载的链接队列

fetchQueue.notifyall();//唤醒爬虫程序开始捕捉

}

}

于是此处将crawlQueue和fetchQueue更新,将来会根据里面的内容进行网页遍历

以上是其主要处理流程和核心代码.

流程如图3。

4问题的提出

4.1关于超时(timeout)

访问网页会设定了一个超时限制(timeout),这也是大多数爬虫程序都有的限制。超时还没返回网页信息则放弃。对于此websphinx

fetchtimedout方法

synchronized(crawlQueue){

crawlQueue.delete(w.link);

--numpagesLeft;

worms[w.i]=newworm(this,w.i);

worms[w.i].start();

crawlQueue.notify();

}

timeout方法:

synchronized(crawlQueue){

synchronized(fetchQueue){

state=Crawlevent.timeD_oUt;

fetchQueue.clear();

crawlQueue.clear();

numpagesLeft=0;

crawlQueue.notify();

}

}

这里存在一个很大的问题,我们知道,如果以国内为基点搜索,国内和国外的网站差别是很大的,而且现在的网络并不是很稳定,对于同一个网站发请求,有时很快就能返回信息,有时过很长时间才行,有时甚至出现无法访问的错误,在这样的环境下,对于爬虫程序,很容易就会返回不正确的结果,比如应该可以访问的,由于网络在某个时刻阻塞而返回超时或无法访问;两次以同一个网站为基站返回的搜索结果截然不同等等。

如果我们能给这种超时限制多一点空间,不要限制的太死是否会好一点?

基于这种想法,我们可以将超时限制分为不同的层次,如果在最开始的超时限制(最严格)下超时,我们可以再将超时限制放宽,再超时再放宽,直到达到上限,这样就可以最大限度的避免网络的不稳定和网站地域的区别而造成的误差

具体做法如下:(限制从严到宽为限制1,限制2。。。)

在达到限制1时,不要马上将对象(网址)剔出队列,而是新建队列:fetchQueue2,并将此对象加入此队列;同样,其他线程也有同样情况对象出现也加入fetchQueue2。同时此时将此队列的超时(timeout)限制放宽一层到限制2,优先级降低。一旦有返回结果时,则进行信息截取,然后重新将遍历出的对象(网址)加入原队列(fetchQueue);如果仍没返回结果,新建队列fetchQueue3,并再次放宽限制,降低优先级;一旦有返回结果时,再回到fetchQueue。。。

当然,一旦成功就回到原始队列fetchQueue,这样如果是国外的网站效率就会很低,因为它很可能每次都要走fetchQueue2,fetchQueue3甚至更高,所以可根据网址特征,过去搜索结果对网址进行评估,是国外网站则可以专门设计一队列(fetchabroadQueue),它的初始限制比fetchQueue高,其他可仿照fetchQueue设计,同样有fetchabroadQueue2,fetchabroadQueue3等等。

对于国内某些本来就很慢的网站(服务器网速慢等情况),可以在搜索时做一些智能化处理,比如,某一网站网址出现:

fetchQueuefetchQueue2fetchQueue3fetchQueuefetchQueue2fetchQueue3……

这种情况达到一定次数,就认定为慢网站,可将该网站的流程改为:

fetchQueuefetchQueue2fetchQueue3fetchQueue2fetchQueue3……

4.2关于算法

websphinx对于每张网页调用visit(page)然后expand(page),其中expand(page)用于遍历所有该page中的链接。可以看出,它使用的是广度遍历的方法。

但不是所有的网站都适用于广度遍历。广度遍历适用于深度较少而每层内容较多的情况,而深度遍历适用于深度高而每层内容较少的情况。对于那种像sina,sohu等等的信息集中网站链接比较多的网站适用于广度优先,但是对于某些做专业技术的网站,比如化工,原料,生命科学专业信息网站,他们往往分类很细,要看到具体信息,需要往下找到具体分类,才能看到具体信息,此时深度已经很高了,如果将其看作一颗树,则信息几乎全在低层。如果还用广度优先算法,则在开始会找到很多重复的没有多大价值的信息,并且如果深度限制太死,则可能根本找不到底层而导致找到的有价值信息几乎为0,也失去了爬虫的意义。

但是我认为最值得我们关注的是爬虫程序的智能化。正如我们所见到websphinx的搜索程序是不变的,每次搜索都是用同样的方法。但对于internet这个庞大的网络而言,每次都用同样的方法势必会导致重复工作效率不高,如果搜索方式(广度或深度)用错,势必每次都用错,如果加入人工智能的因素会对程序的性能有很大的帮助。

对网站的分类(国内或国外,信息集中或专业化),每搜索一次根据前述方法区分一次,记录结果;然后取出最近10次的搜索结果记录取平均值,最近5次的搜索结果记录取平均值;分别作比较,如果分类一致则不变,如果有变化,证明可能网站类型有变化,可再取最近4次,3次,2次的搜索结果记录取平均值作分析重定位网站类型,记录结果。

在扫描网页内容时,可将每一次的信息与上一次比较,对于每次变化很小或长时间没什么变化的网页可以记为“懒惰”网页,同样对网站也是如此。从而可以降低其搜索周期,比如从原来的一周一次降为两周一次,变化快的也可以缩短周期,但到上限为止。

5结论

网络爬虫作为搜索引擎的基本组成部分,它的爬行速度和爬行量直接影响着搜索效率与质量。本文从具体网络爬虫程序websphinx的代码实现出发,结合一般网络爬虫的相关概念和构成,介绍了网络爬虫的相关概念,并阐述了网络爬虫的组成结构,对websphinx的现状提出一些问题和相应解决方案和优化方案。

参考文献:

[1]徐宝文,张卫丰.搜索引擎与信息获取技术[m].北京:清华大学出版社.2003.

[2]Java开源项目websphinx,可扩展的web爬虫项目[eB/oL]./.

[3]张敏,高剑峰,马少平.基于链接描述文本及其上下文的web信息检索[J].计算机研究与发展,2004,41(1):221-226.

[4]JeffHeaton.programmingSpiders,Bots,andaggrega-torsinJava.[m].Sybex,2002

[5]李晓明,闫宏飞,王继民.搜索引擎:原理,技术与系统[m].北京:科学出版社,2005.

[6][abiteboul97]SergeabiteboulandVictorVianu,QueriesandComputationontheweb.proceedingsoftheinternationalConferenceonDatabasetheory.Delphi,Greece1997.

[7][Bagdikian97]BenH.Bagdikian.themediamonopoly.5thedition.publisher:Beacon,iSBn:0807061557.

网络爬虫基本原理篇4

关键词:大数据;爬虫;scrapy;歌词爬取

中图分类号:tp391.3

2012年2月12日《纽约时报》发表文章“theageofbigdata”[1],作为主流媒体告诉人们,大数据真实地存在人们身边,而不是科技概念上的炒作。tecktarget的一份调查显示[2],伴随业务增长以及互联网、社交媒体等领域的发展,已有超过57.1%的企业数据量突破tB级别。在社交媒体上,twitter每天的信息数达到3.4亿,Facebook每天的分享和量达到40亿,Youtube每天上传的影片内容多达5万小时。全球著名咨询公司麦肯锡对大数据给出定义[3]:无法在可容忍的时间内用传统it技术和软硬件工具对其进行感知、获取、管理、处理和服务的数据集合。我们不缺乏数据,缺乏的是从数据中提取出知识的能力[4]。

一般来说,行为科学的研究范式遵循先在原有理论基础上构造新的概念模型,然后通过数据收集、数据分析,最后证明概念模型能比现有理论更好地解释现实中企业或人们行为的规律。这样一来,数据收集方法的准确性、全面性对后续研究而言极为关键。但传统意义上的数据收集方法,如问卷调查法,访谈法等,其样本容量小、信度低、且受经费和地域范围所限,因而收集的数据往往无法客观反映研究对象,有着较大的局限性。正如“信息处理的准则――garbageingarbageout”所揭示的,如果输入的是无效信息,无论处理的程序如何精良,输出的都是无用信息。可见,对比传统的数据收集方法,立足于海量数据的研究有以下的优点:

(1)数据的真实性。使用问卷调查法收集数据,调查者难以了解被调查者是认真填写还是随便敷衍。事实上,大多数被调查者因为对调查问题不了解、回答方式不清楚等原因而敷衍了事,使得后续研究的价值大打折扣。而通过爬虫技术能快速获取真实、客观反应用户行为的数据,如用户在社交网络上对企业的评论显然要比在接受问卷调查时的回答真实。这是因为,前者是用户自愿与好友分享自己的购物经历或用户体验,而后者受调查环境所影响,若被调查者存在一定的心理压力,则做出的反馈可能会有失偏颇。

(2)样本容量。维克托・舍恩伯格指出[5],在成本限制下,采样的目的就是用最少的数据得到最多的信息,前提是要保证样本间的相互独立性。而传统的数据方法常常难以保证这一点,因为传统的数据收集方法在选择样本时常受到调查者自身因素的影响,如挑选友善的人群或自己的朋友,这样就难以保证样本的随机性和代表性,加上在过滤掉虚假样本后,真正能用来做分析处理的样本容量非常少。相比较而言,使用爬虫对互联网上的海量数据进行收集、分析,即所谓的“样本等于全体”的全数据模式,能更好地反映客观事实,而数据愈全面,分析研究的结果也就愈真实。

可见,爬虫不仅仅是一门技术,更是在大数据环境下进行高质量科学研究的一把新钥匙。掌握爬虫技术,已成为当下研究工作者的必备技能。下面笔者将阐述爬虫的原理及scrapy爬虫框架,并以爬取歌词为例,详细讲解使用scrapy爬取数据的步骤。

1爬虫原理

我们浏览的网页数以亿计,它们在世界各地的服务器上存储着。用户点击一个网页的超链接以跳转的方式来获取另一个页面的信息,而跳转的页面又有链接存在,网页便由超链接组成一个巨大且错综复杂的网。而web爬虫(Crawler),也称蜘蛛(Spider),则是穿梭在这巨大的互联网中下载网页解析内容的程序。

爬虫的应用很广泛。在商务智能上,企业使用爬虫收集竞争对手的情报或在社交网络、虚拟社区上爬取用户对企业的评价从而在产品服务上做出改进等。在数据研究上,爬虫能快速收集互联网上的信息,为数据分析提供原始资料。

图1爬虫算法流程图

图1[6]为一个简单爬虫算法的流程图:从一系列种子(Seed)网页开始,使用这些网页的链接去获取其他页面,把这些网页中的链接依次提取出来后,访问链接对应的页面。在网络爬虫中,使用哈希表记录一个页面是否被访问过,未被访问的链接则放入队列。由调度算法,每次从队列中取出一个URL,然后通过"]

defparse(self,response):

hxs=HtmlXpathSelector(response)

singerlist=hxs.select('//ul/li')

items=[]

forsingerinsingerlist:

item=Lyricitem()

item['singername']=singer.select('a/text()').extract()

item['singerLink']=singer.select('a/@href').extract()

items.append(item)

returnitems”

2.4执行爬虫程序

“scrapycrawlLyric-oitems.json-tjson”

使用scrapy程序调用Lyric爬虫,并且爬取的结果以json文件格式保存到items.json文件中。

3结束语

我们正身处于“云计算、大数据、移动互联网、社会网络计算……”这股时代浪潮之中。大数据时代下数据的繁荣,给科研工作者进行科学研究带来极佳的原材料。编写爬虫程序收集数据,在真实、海量数据的基础上进行研究,无疑能孕育出新的科研成果,且其更贴近现实,对商业实践更具有指导意义。

参考文献:

[1]timesnY.theageofbigdata[eB/oL].[2012-10-02].?pagewanted=all&_r=0.

[2]孙瑞.2012年数据管理优先度调查:数据增长速度加快[eB/oL].[2012-8-31]..

网络爬虫基本原理篇5

搜索引擎的工作原理为:从互联网上抓取网页建立索引数据库在索引数据库中搜索排序。从互联网上抓取网页利用能够从互联网上自动收集网页的Spider系统程序,自动访问互联网,并沿着任何网页中的所有URL爬到其它网页,重复这过程,并把爬过的所有网页收集回来。建立索引数据库由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息根据一定的相关度算法进行大量复杂计算,得到每1个网页针对页面内容中及超链中每1个关键词的相关度(或重要性),然后用这些相关信息建立网页索引数据库。

在索引数据库中搜索排序当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。最后由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。

搜索引擎按其工作方式可分为三种,全文搜索引擎,目录搜索引擎和元搜索引擎。

1全文搜索引擎

全文搜索引擎的代表是网络爬虫,网络爬虫是一个自动提取网页的程序,它为搜索引擎从internet网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页,并重复上述过程,直到达到系统的某一条件时停止。所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。

爬虫设计是否合理将直接影响它访问web的效率,影响搜索数据库的质量,另外在设计爬虫时还必须考虑它对网络和被访问站点的影响,因为爬虫一般都运行在速度快,带宽高的主机上,如果它快速访问一个速度较慢的目标站点,可能导致该站点出现阻塞。Robot应遵守一些协议,以便被访问站点的管理员能够确定访问内容,index是一个庞大的数据库,爬虫提取的网页将被放入到index中建立索引,不同的搜索引擎会采取不同方式来建立索引,有的对整个HtmL文件的所有单词都建立索引,有的只分析HtmL文件的标题或前几段内容,还有的能处理HtmL文件中的meta标记或特殊标记。

2目录搜索引擎

目录搜索引擎的数据库是依靠专职人员建立的,这些人员在访问了某个web站点后撰写一段对该站点的描述,并根据站点的内容和性质将其归为一个预先分好的类别,把站点URL和描述放在这个类别中,当用户查询某个关键词时,搜索软件只在这些描述中进行搜索。很多目录也接受用户提交的网站和描述,当目录的编辑人员认可该网站及描述后,就会将之添加到合适的类别中。

目录的结构为树形结构,首页提供了最基本的入口,用户可以逐级地向下访问,直至找到自己的类别,另外,用户也可以利用目录提供的搜索功能直接查找一个关键词。由于目录式搜索引擎只在保存了对站点的描述中搜索,因此站点本身的变化不会反映到搜索结果中,这也是目录式搜索引擎与基于Robot的搜索引擎之间的区别。分类目录在网络营销中的应用主要有下列特点:

通常只能收录网站首页(或者若干频道),而不能将大量网页都提交给分类目录;网站一旦被收录将在一定时期内保持稳定;无法通过"搜索引擎优化"等手段提高网站在分类目录中的排名;在高质量的分类目录登录,对于提高网站在搜索引擎检索结果中的排名有一定价值;紧靠分类目录通常与其他网站推广手段共同使用。

3元搜索引擎

我们可将元搜索引擎看成具有双层客户机/服务器结构的系统。用户向元搜索引擎发出检索请求,元搜索引擎再根据该请求向多个搜索引擎发出实际检索请求,搜索引擎执行元搜索引擎检索请求后将检索结果以应答形式传送给元搜索引擎,元搜索引擎将从多个搜索引擎获得的检索结果经过整理再以应答形式传送给实际用户。当然,某些元搜索引擎具有略微不同的机制。元搜索引擎在接受用户查询请求时,同时在其他多个引擎上进行搜索,将结果进行相关处理,以整体统一的格式反馈给用户。

它的特点是本身并没有存放网页信息的数据库。多数元搜索引擎在处理其它的搜索引擎返回结果时,只提取出每个搜索引擎的结果中考前的条目,然后将这些条目合并在一起返回给用户,元搜索引擎实现起比较简单,但是它也有一定的局限性,例如多数元搜索引擎都只能访问少数几个搜索引擎,并且通常不支持这些搜索引擎的高级搜索功能,在处理逻辑查询时也常常会出现错误。在这几种检索工具中,目录式搜索引擎成本高,信息t少的缺点,但它的信息准确这一优点使其在一定的领域和时间内仍会被使用,机器人搜索引擎是当前各种搜索引擎的主流,但随着网络信息量的增加,单一搜索引擎已经难已满足要求,结合目录式搜索引擎,机器人搜索引擎的优势,以元搜索引擎为核心的多层搜索引擎是搜索引擎的发展方向。

搜索引擎技术功能强大,提供的服务也全面,它们的目标不仅仅是提供单纯的查询功能,而是把自己发展成为用户首选的internet入口站点。目前的搜索引擎主要有几个特点:多样化和个性化的服务。强大的查询功能。目录和基于Robot的搜索引擎相互结合。目前搜索引擎是网络上被使用频率最高的服务项目之一,随着internet的发展,网上庞大的数字化信息和人们获取所需信息能力之间的矛盾突出。搜索结果丰富的搜索引擎技术正在被信息更集中的局域网取代,因为搜索系统的表现与用户的期望值相差太大,诸如数据量高速增长的视频、音频等多媒体信息的检索,仍然无法实现。

搜索引擎越来越不能满足用户的各种信息需求,如收集的网页数量和其数据库的更新速度存在着不可调和的矛盾。用户经常无法打开查询的结果。网络信息时刻变动,实时搜索几乎不可能。网络信息收集与整理是搜索引擎工作的重要部分。搜索引擎需要定期不断地访问网络资源。目前网络带宽不足,网络速度慢,遍历如此庞杂的网络时间花费非常庞大,这就是不能实时搜索的原因。(编选:勇全)

参考文献

[1]张兴华.搜索引擎技术及研究[J].现代情报,2004,(4).

[2]唐铭杰.论搜索引擎的发展概况及发展趋势[J].情报杂志,2001,(5).

[3]阳小华.分布式www信息收集技术[J].计算机工程与应用,2000,(5).

网络爬虫基本原理篇6

关键词:网络爬虫,策略,搜索引擎

 

网络快速发展的今天,互联网承载着海量的信息,能够准确快速的提取我们所需要的信息是现在的挑战。传统的搜索引擎有Yahoo,Google,百度等,这些检索信息的工具是人们每天访问互联网的必经之路。但是,这些传统性搜索引擎存在着局限性,它不能全面的准确的找到所需要的信息,也会使一些和需求无关的内容一起搜索到。严重的降低了使用这些信息的效率,所以说提高检索信息的速度和质量是一个专业搜索引擎主要的研究内容。

1.搜索引擎的研究

1.1搜索引擎的分类

搜索引擎按其工作方式可分为三种,分别是全文搜索引擎,目录索引类搜索引擎[1]和元搜索引擎。

1.全文搜索引擎

全文搜索引擎是最常用搜索引擎,大家最熟悉的就是国外的代表Google,和国内的代表百度。它们通常都是提取各个网站的网页文字存放在建立的数据库中,检索与用户查询条件匹配的相关记录,然后按其自己设定的排列顺序将结果返回给用户。

从搜索结果来源的角度,全文搜索引擎又可细分为两种,一种是拥有自己的检索程序,它们拥有自己的网页数据库,搜索到得内容直接从自身的数据库中调用,如Google和百度;另一种则是租用其他引擎的数据库,但是,是按自定的格式排列搜索结果,如Lycos引擎。

2.目录索引型搜索引擎

目录索引,就是将网站分类,然后存放在相应的目录里,用户在查询所需要的内容时有两种选择一种是关键词搜索,另一种是按分类目录一层一层的查找。据信息关联程度排列,只不过其中人为因素要多一些。如果按分层目录查找,某一目录中网站的排名则是由标题字母的先后以关键词搜索,返回的结果跟搜索引擎一样,也是按自定顺序决定。

目录索引只能说有搜索功能,但仅仅是按目录分类的网站链接列表。用户完全可以不用进行关键词查询,仅靠分类目录也可找到需要的信息。目录索引型搜索引擎中最具代表性的是Yahoo(雅虎)。其他著名的还有LookSmart、about等。国内的搜狐、新浪、网易搜索也都属于这一类。

3.元搜索引擎

当用户在进行查询时,元搜索引擎可以同时在其他多个引擎上进行搜索,将检索结果进行统一处理,并将结果以统一的格式返回给用户。正因为如此,这类搜索引擎的优点是返回结果的信息量更全面,但是缺点就是无用的信息太多不能准确的找到用户需要的结果。

具有代表性的元搜索引擎有Dogpile、infoSpace、Vivisimo等,中文元搜索引擎中著名的有搜星搜索引擎。

在搜索结果排列方面,不同的元搜索引擎有不同的结果排列的方式。如Dogpile,就直接按来源引擎排列搜索结果,如Vivisimo,是按自定的规则将结果重新进行排列。。

1.2搜索引擎的工作原理

搜索引擎主要是对用户要求的信息进行自动信息搜集,这个功能共分为两种:一种是定期搜索,即每隔一段时间搜索引擎主动派出“Spider”程序,目的是对一定ip地址范围内的互联网站进行检索,如果一旦发现新的网站,它会自动提取网站的信息和网址加入自己的数据库;另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,搜索引擎在一定时间内定向向你的网站派出蜘蛛程序,扫描你的网站并将有关信息存入数据库,以备用户查询。

如果用户以关键词查询所需要的信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相匹配的网站时,搜索引擎通常根据网页中关键词的匹配程度,出现的位置/频次,链接质量等特殊的算法计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将用户所需要的内容反馈给用户。

2.网络爬虫

2.1通用网络爬虫和聚焦网络爬虫的工作原理

网络爬虫是搜索引擎的重要组成部分,它是一个自动提取网页的程序,为搜索引擎从网上下载网页。

传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。。

与传统爬虫相比,聚焦爬虫的工作流程则较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存起来,进行一定的分析、过滤,并建立索引,为了方便之后的查询和检索。

2.2网络爬虫的搜索策略

1.ip地址搜索策略

ip地址搜索策略是先给爬虫一个起始的ip地址,然后根据ip地址以递增的方式搜索本ip地址段后的每一个地址中的文档,它完全不考虑各文档中指向其它web站点的超级链接地址。这种搜索策略的优点是搜索比较全面,因此能够发现那些没被其它文档引用的新文档的信息源;但是缺点是不适合大规模搜索。

2.深度优先搜索策略

深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HtmL文件)。例如,在一个HtmL文件中,当一个超链被选择后,被链接的HtmL文件将执行深度优先搜索,也就是说在搜索其余的超链结果之前必须先完整地搜索单独的一条链。深度优先搜索沿着HtmL文件上的超链走到不能再深入为止,然后返回到某一个HtmL文件,再继续选择该HtmL文件中的其他超链。当不再有其他超链可选择时,说明搜索已经结束。

3.宽度优先搜索策略

宽度优先搜索的过程是先搜索完一个web页面中所有的超级链接,然后再继续搜索下一层,直到底层为止。例如,一个HtmL文件中有三个超链,选择其中之一并处理相应的HtmL文件,然后不再选择第二个HtmL文件中的任何超链,而是返回并选择第二个超链,处理相应的HtmL文件,再返回,选择第三个超链并处理相应的HtmL文件。当一层上的所有超链都己被选择过,就可以开始在刚才处理过的HimL文件中搜索其余的超链。

宽度优先搜索策略的优点:一个是保证了对浅层的优先处理,当遇到一个无穷尽的深层分支时,不会导致陷进www中的深层文档中出现出不来的情况发生;另一个是它能在两个HtmL文件之间找到最短路径。

宽度优先搜索策略通常是实现爬虫的最佳策略,因为它容易实现,而且具备大多数期望的功能。。但是如果要遍历一个指定的站点或者深层嵌套的HtmL文件集,用宽度优先搜索策略则需要花费比较长的时间才能到达深层的HtmL文件。

2.3网络爬虫的发展趋势

随着aJaX/web2.0的流行,如何抓取aJaX等动态页面成了搜索引擎急需解决的问题,如果搜索引擎依旧采用“爬”的机制,是无法抓取到aJaX页面的有效数据的。对于aJaX这样的技术,所需要的爬虫引擎必须是基于驱动的。而如果想要实现事件驱动,首先需要解决以下问题:第一,JavaScript的交互分析和解释;第二,Dom事件的处理和解释分发;第三,动态Dom内容语义的抽取。

3.结束语

本文阐述了搜索引擎的原理以及网络爬虫的工作原理和发展趋势,网络爬虫技术的研究对搜索引擎的应用和发展有着十分重要的意义。抓住准度和速度两个大方向,进一步的深入网络爬虫技术,在耗费最少的网络资源的前提下使搜索引擎能够更准确更快捷的找到人们的需求。

参考文献

[1]edwards,J.,mcCurley,K.S.,andtomlin,J.a.(2001).'anadaptivemodelforoptimizingperformanceofanincrementalwebcrawler'.inproceedingsofthetenthConferenceonworldwideweb(HongKong:elsevierScience):106–113.doi:10.1145/371920.371960.

[2]刘金红,陆余良,主题网络爬虫研究综述,计算机应用研究院,2007(10):26-27.

[3]王岩,搜索引擎中网络爬虫技术的发展,电信快报,2008(10):19-20.

[4]刘世涛,简析搜索引擎中网络爬虫的搜索策略,阜阳师范学院学报,2006(9):60-61.

网络爬虫基本原理篇7

关键词:互联网视频网站;爬虫技术;获取数据

中图分类号:tn915.08文献标识码:a文章编号:1671-2064(2017)03-0030-01

在当前阶段中,随着计算机网络技术的不断完善,各个领域当中的数据在不断增加,从而使当前社会进入到大数据时代,这些数据可以为各个领域的发展提供良好的帮助。这种情况下,为了使互联互联网视频网站更好的为人们提供视频,就要更好的对这些数据进行获取。因此,加强对互联网视频网站使用爬虫技术获取数据的研究具有重要意义,促进我国互联网视频网站更好的发展。

1互联网视频网站数据获取的特点

1.1一般特点

随着社会的发展,科学技术的不断进步,计算机网络技术得到了飞速的提升,从而出现了大量的数据,其中就包括了互联网视频网站数据,在这些数据当中,就会体现出很多的特点,主要有以下几个方面:(1)数据体量巨大。在人们的生活当中,利用网络观看视频是主要的娱乐方式之一,因此,在观看的过程中,就会出现很多的网络信息,如用户的个人信息,用户对节目观看的信息,节目自身具有的信息等等,从而使其具有了数据体量巨大的特点;(2)数据类型繁多。在对视频网站进行应用时可以发现,在其中包含了很多形式的内容,如图片、视频、文字等,因此,就说明视频网站产生的数据出现了类型繁多的特点;(3)价值密度低。在视频网站运行的过程中,是连续不断的产生数据的,而在这些数据当中,包括了各个种类的信息,而在这些信息当中,有些信息存在的价值往往不是很高,不会影响到视频网站的发展;(4)处理速度快。这一特点就体现在人们对视频观赏时,能够立刻的产生数据,据相关部门统计,互联网视频网站每秒产生的数据是以pB为单位的[1]。

1.2获取网页信息

在互联网视频网站数据当中,除了具有上述的一般特点之外,还具有获取网页信息的特点。在对视频网站开发的过程中,可以利用很多技术来完成,如英文超级文本预处理语言技术、面向对象程序设计语言技术等,虽然这些技术的方式具有一定差异,但是在对数据进行传输时,使用的原理相差不是很大,都是利用相应的Http协议,将数据传递到用户当中。并且,由于互联网视频网站数据具有上述的一般特点,因此,在其对数据进行获取时,还可以获取一些网页当中的信息,通过对网页中的信息进行应用,从而为视频网站更好的运行提供了帮助[2]。

2互联网视频网站获取数据时爬虫技术的应用

2.1网络爬虫的算法分析

在应用爬虫技术对互联网视频网站数据进行获取时,是利用相应的算法来完成的,而在当前的算法当中,主要有以下三种:第一种是深度优先搜索算法,该算法是爬虫技术当中最基础的算法,同时也是出现最早的一种算法,其目标是要到达结构的最外结点,即在搜索时不能将具有链接的HtmL文件检索出来。该算法运行当中,首先沿着一条链接进行检索,直到边缘节点为止,将该条连接中的所有数据搜索出来,然后在对另一条链接进行搜索,从而使视频网站获得了相应的数据。使用该种算法获取数据时,能够准确的检索出整个文件中的数据,但是由于网络的复杂性,在对数据搜索时,常常会导致该算法中断,不能对其他链接进行检索;第二种为宽度优先算法,就是在视频网站信息获取的过程中,根据网站的结构不同,沿着宽度的方面,一层一层的进行搜索[3]。

2.2算法改进

由于上诉的基本算法都存在一定的缺陷,对互联网视频网站的数据获取带来了一定的影响,其中最好优先搜索算法的缺陷较小,只是存在查全率不高的问题,因此,就要对该算法进行改进。在利用改进算法进行检索时,在对一个文件查找完成后,就算该文件与本次查找关系不大,但是也不会对其进行忽略,而是将其储存到相应的位置,对其进行深入的分析,分析出每个信息中是否会存在视频网站有用的信息,如果不存在这一类信息,才可以继续对其他文件进行检索,然后利用该种算法对整个网络进行检索,从而改善了查全率不高的问题,使互联网视频网站数据获取的效果更高[4]。

3结语

综上所述,在当前的互联网当中,大数据为其发展提供了重要的帮助,但是,由于大数据具有的开放性、共享性等特点,在使用的过程中还会存在一定的风险,因此,在利用爬虫技术对互联网视频网站的数据进行获取时,要加强对数据风险的防范,能够保证网站的安全性、可靠性。

参考文献

[1]孔涛,曹丙章,邱荷花.基于mapReduce的视频爬x系统研究[J].华中科技大学学报(自然科学版),2015,09(05):129-132.

[2]邓炳光,郭慧兰,张治中.移动互联网用户行为分析系统中聚焦爬虫的设计与实现[J].重庆邮电大学学报(自然科学版),2015,11(03):359-365.

网络爬虫基本原理篇8

>>数字校园知识获取平台的构建国外开放获取平台对我国科技期刊oa发展的启示彝文研究的踵武增华彝文研究简述彝文信息处理自动分词技术的研究现状与难点分析彝文信息处理技术的发展历程评述彝文汉译本的文本叙事特点研究获取网络信息微信平台下的教务信息获取和隐私保护方法研究文综试题的地理信息获取和解读基于社会网络的社团内部个体成员信息的获取和积累算法研究基于网络环境下获取有用教育信息的研究网络学术信息获取的用户行为分析与策略研究浅析信息社会背景下彝文古籍的保护与利用简析凉山彝族地区彝文信息传播的进程与发展瓶颈网络商务信息服务与获取研究彝文输入法形码编码的研究与实现基于移动agent的网络学习评价信息获取获取网络信息的策略与技巧教学设计高效获取网络信息的策略与技巧常见问题解答当前所在位置:l)为例进行抓取。

通用爬虫对中国彝学网网页抓取后,已经把全部有效的URL保存到aCCeSS数据库中,下一步的工作是要进行网页筛选。

3.2网页筛选模块

通用爬虫在遍历整个中国彝学网网页时,会对每一个新的网页都进行遍历,这样不可避免的会搜索到非常多重复的彝文网页。与此同时,也可能会获取到一些错误或不完整的网址。但因为通用爬虫没有排除重复网页、不完整和错误网址的功能,所以,需要通过网页筛选模块来做此工作,从而增强网页搜索的准确性和有效性。网页筛选模块采用正则表达式来匹配中国彝学网网址,同时去除获取到的不完整、错误的网址或重复的网址。

通过网页筛选模块,去除了通用爬虫模块获取到的不完整、错误的网址或重复的网址,下一步便可以进行网页信息抽取。

3.3网页信息抽取模块

由于彝文网络信息在信息时代越来越重要,彝文网页信息抽取获得了很多专家的关注。彝文网页信息抽取技术指的是通过对HtmL网页的解析,抽取彝文网页中有价值的彝文信息,然后进行结构化存储的一系列技术的总称。

在对采集的彝文页面信息进行解析的基础上,网页信息抽取模块将对彝文网页中文章的标题、时间、内容等进行抽取。网页信息抽取模块的主要代码如下:

3.4数据存储模块

数据存储模块将抽取到的彝文网页中文章的标题、时间、来源及其对应的URL等信息存储到aCCeSS数据库中,并保存到以iD命名的tXt文档中,这些文档被统一存放到文件名为“文章”的文件夹中。

3.5界面设计

本彝文网络信息获取平台采用C#设计界面,C#是一种可视化的程序设计语言,系统界面的设计遵循以下原则:

(1)桌面软件界面设计原则。桌面软件界面可以给用户带来丰富的体验感,具有较好的交互性。

(2)简洁原则。C#可以采用windows窗体和控件,用它们进行界面开发,可以为用户展示美观而又简洁的界面。

彝文网络信息获取平台可以获取彝文网页中文章的标题、时间、来源及其对应的URL,并且通过对标题的搜索可以快速找到想要查询的信息。图3为彝文网络信息获取平台的主界面:

双击采集列表可以显示获取文章的详细信息,包括iD、标题、来源、时间、对应的URL及网页内容。如图4所示:

网页采集的同时,会将所获得的网页信息保存为以iD命名的tXt文档形式,所有的tXt文档都存放在一个叫“文章”的文件夹中。

3.6实验结果分析

彝文网页信息抽取效果评价的两个主要参数是召回率(RecallRate)Re和查准率(precision)pr,公式如下:

(1)

(2)

因为是在中国彝学网内部进行抓取,所以本平台在性能测试时,相关文档总数等于文档总数,即Re=pr。

在如下平台中测试本平台的性能:测试机器的CpU为3.6GHz,内存8.0G,操作系统是windows7。运行环境为VisualStudio2010,数据库是access2003,程序语言使用C#。实验数据来源于中国彝学网()截止到2014年12月11日的网页信息。实验结果如表1所示:

表1中:n表示文档总数;e表示采集的相关文档数;t表示抽取时间;Re表示召回率;pr表示查准率。

实验结果表明,本彝文网络信息获取平台可以有效地完成彝文网页信息抽取工作,采集、抽取花费的时间短,准确率高,基本上达到了实验预期目的。

4结语

彝文网络信息获取平台是一个基础性的平台,随着彝文网络信息应用的发展,该平台也必将随之发展和完善。本彝文网络信息获取平台虽然实现了彝文网络信息采集处理的基本功能,但还存在彝文网页信息解析不够智能等问题。在以后的工作中还将对基于用户学习机制的智能化网页解析和彝文信息抽取方案等方面展开更深入的研究。

参考文献

[1]朱建军.三十年来国内彝文研究综述[J].中国文字研究,2006:042.

[2]陈顺强.信息处理用彝语词法分析研究[J].西南民族大学学报:自然科学版,2013,39(4):639-642.

[3]林春,王嘉梅,张建营,等.彝文网页敏感信息监测系统的研究[J].中国新通信,2013,(24).

[4]孙立伟,何国辉,吴礼发.网络爬虫技术的研究[J].电脑知识与技术,2010,6(15):4112-4115.

[5]Diligentim,CoetzeeF,LawrenceS,etal.FocusedCrawlingUsingContextGraphs[J].VLDB.2000:527-534.

[6]赵茉莉.网络爬虫系统的研究与实现[D].成都:电子科技大学,2013.

[7]Brobergn,Farrea,SvenningssonJ.Regularexpressionpatterns[J].aCmSiGpLannotices.2004,39(9):67-78.

[8]杨威.基于正则表达式的web信息抽取系统的研究与实现[D].西安:西安电子科技大学,2011.

[9]赖勇浩,谢赞福.防干扰的不良网页过滤算法研究[J].计算机工程,2007,33(11):98-99.

[10]李魁,程学旗,郭岩,等.www论坛中的动态网页采集[J].计算机工程,2007,33(6):80-82.

[11]游安弼.用C#二次开发UGnX[J].现代机械,2007(02):79-82.

[12]陈洁.基于概念融合的网页筛选技术研究[D].北京:北京邮电大学,2013.

作者简介

孙善通(1991-),男,安徽省蚌埠市人。学士学位,硕士研究生学历。主要研究方向为数据挖掘、信息处理。

通讯作者

王嘉梅(1964-),女(彝族),云南省昆明市人,学士学位,现为云南民族大学教授、硕士生导师。主要研究方向为网络信息安全、民族语言文字信息化处理应用研究。

网络爬虫基本原理篇9

【关键词】小世界模型;社团分析;复杂网络

0引言

随着emBa教育逐渐为社会各界所熟识,emBa培养院校的招生工作目前面临巨大压力。从市场竞争的格局来看:一方面,国内emBa院校已经达到64所,加上境外大学的教学项目,在国内招生的emBa项目已经近百所,而且还有继续扩大的趋势,未来的竞争会更加激烈。另一方面,随着mBa和其他硕士教育的迅速普及,未来emBa的申请人数量将呈逐年下降的趋势。这使得市场竞争态势更加雪上加霜,商学院必须有所转变,不能取得某一细分市场优势地位的emBa项目,或者没有建立自己品牌特色的项目将面临生存危机。

在各培养院校的招生过程中,尤其是emBa项目的市场调研中,如何在庞大的数据、人际关系网络中找到关键节点,进而通过关键节点寻找到适合emBa招生的生源群体,是目前emBa招生环节中的关键问题。当今社会的人际关系网络错综复杂,变化万千,如何对人际关系进行系统性的描述和梳理,划分出相应的群体并研究他们的共同特征,是系统科学中十分关键的问题。复杂网络理论由于其具有小世界、集群等特性,十分适用于对社会网络即人际关系网络中的人群进行分类与描述,进而寻找出人际关系网络的关键节点和群体,为寻找出潜在招生对象提供依据。

1相关工作

现代市场营销职能体系包括商品销售、市场调查研究、生产与供应、创造市场要求和协调平衡公共关系五大职能。对于高等教育市场来看,高等教育提供的产品就是教育,教育市场有市场的需求,同时也具备了价值交换的能力,所以教育活动完全可以与市场接轨参与市场竞争。人际关系网络是一个错综复杂、变化万千的复杂系统。近年来随着复杂网络研究的兴起,人们在这些理论的指导下能够更好的了解和解释现实世界的很多现象,比如反映社区特性的“物以类聚、人以群分”现象、反映小世界特性的“六度分隔”现象,以及反映复杂网络节点的不对等特性的“马太效应”等等。在很好的理解和解释了这些现象的基础上,研究者开始尝试利用这些理论去帮助人们利用这些现象,并开发了很多的实际的应用和系统。例如:城市交通网络、电子商务推荐系统、人际关系挖掘系统等。

近年来,学界关于复杂网络的研究方兴未艾。1998年watts和Strogatz在nature杂志上发表文章,引入了小世界(Small-world)网络模型,以描述从完全规则网络到完全随机网络的转变。小世界网络既具有与规则网络类似的聚类特性,又具有与随机网络类似的较小的平均路径长度。二是1999年Barabasi和albert在science上发表文章指出,许多实际的复杂网络的连接度分布具有幂律形式。由于幂律分布没有明显的特征长度,该类网络又被称为无标度(Scale-Free)网络。而后科学家们又研究了各种复杂网络的各种特性。

在人际关系网络获取方面,由于网络内不仅节点众多,而且关系的分类也多种多样。因此获取人际关系是一项非常复杂的工程,历史上几次比较大规模的实验也仅仅是采用书信或者政府档案的方式,覆盖面十分有限。随着网络的发展,互联网的内容日新月异,互联网成为了最大的非结构化数据库,使从网络中探索人际关系成为了可能。目前网络的关系获取方法主要有两种:关系搜索引擎和社区资源。关系搜索引擎的的基本原理是利用网络爬虫从网页中抽取出人名、地名、机构名以及中文短语,再根据算法计算出他们存在关系的可能性。现阶段国内的关系搜索引擎有微软人立方(http://renlifang.msra.cn/)、雅虎人物搜索和搜搜华尔兹(http://tag.soso.com/)。但是由于网页的来源比较复杂,而且存在重名的问题,得到的结果往往不精确,难以真实的表现出真实的人际关系。第二种搜索方式则是利用网络中现有的社区资源,对其信息进行抓取,得到的信息虽然规模有限,但是可以确定所有节点信息,具有更强的结构化特性,更加符合真实人际关系的无标度和小世界特性。

2基于复杂网络的招生生源社团分析方法

2.1系统的设计目标与创新点

在整个人际关系网络中,存在一些子网,它们对于其内部的节点具有高类聚性,而对于子网外部节点的连接确相对稀疏的特性,我们称之为人群的社团结构。

通过实现社团划分系统,并对真实人际关系网络进行处理和分析,研究复杂网络社团划分技术在未来人际关系网络处理上的潜在应用以及较以前撒网式处理方式的优势。本系统希望能够对招生生源的人际关系网络进行分析,寻找出人际关系中的关键节点以及关键社团信息,以此为emBa招生生源选取以及宣传广告的定向投放目标选择提供必要依据。

该方法是对传统市场调查分析、广告宣传领域的再思考,相比广泛撒网式的宣传与调查,该方法具有效率高、定位准确、耗费人力物力较少、资源可重复利用性强等优点,十分适合于解决emBa面临的招生生源困难这一具体问题。

2.2网络社区的选择

选取网络社区需要综合考虑多方面因素:

(1)关系要真实有效,即网络的好友关系能比较客观的反映出现实生活中的好友关系。

(2)关系网络要足够大,仅仅包括几千个节点的网络能够在非常短的时间内遍历完毕,不能够反映出来真实人际关系非常难以获取的特点,不具有研究价值。

(3)关系网络可以比较方便的获得,部分网络社区采用了加密设置,非注册用户不能够获得其他人的好友关系,虽然从技术上可以进行破解,但是存在较大的风险。

(4)社区允许爬虫进行抓取,对于需要的页面不存在robot.txt的限制。

(5)服务器比较强大,可以应对每秒钟几百次(包括爬虫的访问次数在内)的请求。

经过对国内较大的几家SnS(社会性网络服务)网站的测试分析,最终选取了聚友网(http://myspace.cn)作为实验的样本。聚友网是以SnS为基础的娱乐平台,是全球最大的在线交友平台之一mySpace的中国本地化网站,符合以上几点要求,且服务器可供校园网访问。聚友网(myspace),是以SnS为基础的娱乐平台,是全球最大的在线交友平台myspace的中国本地化网站,提供免费的微型博客、个人主页、个人空间、电子相册、博客空间、音乐盒视频上传空间等服务。我们所要采用的myspace网络是从该网站的众多用户中,使用网络爬虫技术获得的其中的13569个用户,网络中包含了99185条关系,两个节点之间的一条边则意味着相应的两个用户之间互为好友关系。

2.3招生生源社团分析系统

招生生源社团划分系统包括爬虫获取信息、关系分析、数据读入、数据显示、社团划分和数据显示六个个部分。网络爬虫系统将分析出的典型社会网络信息,经过关系分析处理,最终存储成为网络原始结构数据。用户可以使用社团划分系统读入已有的人际关系网络数据,并让系统对其进行社团划分。在系统运行算法完毕后,将会自动保存对该人际关系网络社团划分后的最终结果,用户可以通过窗口查看各个社团所包含的派系、节点等信息,被查看的社团还可以用图片的形式显示出来。

其中各模块的功能如下:

爬虫模块:负责从典型社交网络中获取社交信息。

关系分析模块:负责将社交信息之间的关系进行处理并存储形成网络原始结构数据。

数据读入:读入系统需要分析的原始数据。

数据写出:将经过社团划分系统处理后的数据保存到文档中。

数据显示:在社团划分系统中显示社团划分的结果。

社团划分:核心算法,分为2个部分。第一步,寻找原始数据中所有的派系;第二步,通过派系重叠矩阵划分出k-派系社团。

3实验与分析

3.1招生生源社团分析系统

社团划分系统采用了复杂网络社团划分技术中的派系过滤算法为其主要核心。本章主要是使用社团划分系统分析myspace这一真实的人际关系网络,将获得的社团结果和统计结果与实际情况相对比,测试核心算法在系统中是否正确的运行,并验证得出利用社团划分系统分析学生的人际关系网络,能够得到合理的社团结构,满足寻找潜在生源的目的,为emBa招生起到提高宣传推广效率的作用。

聚友网(myspace),是以SnS为基础的娱乐平台,是全球最大的在线交友平台myspace的中国本地化网站,提供免费的微型博客、个人主页、个人空间、电子相册、博客空间、音乐盒视频上传空间等服务。我们所要采用的myspace网络是从该网站的众多用户中,使用网络爬虫技术获得的其中的13569个用户,网络中包含了99185条关系,两个节点之间的一条边则意味着相应的两个用户之间互为好友关系。下图展示了myspace的好友关系图。

图3myspace网络用户关系展示

3.2系统分析结果

通过社团划分系统对myspace网络的分析,我们共获得各派系共12446个,派系社团559个。下图为使用社团划分系统分析myspace网络后,获得的一个17-派系社团结构(k=17)和一个33-派系社团结构(k=33)。

图4myspace网络的一个17-派系社团(k=17)

图5myspace网络的一个33-派系社团(k=33)

3.3结果分析

选取myspace网络社团划分结果中的3-派系社团(k=3)、4派系社团(k=4)和5派系社团(k=5)作为我们的分析目标。

经统计分析,myspace网络中3-派系社团(k=3)、4派系社团(k=4)和5派系社团(k=5)的社团大小分布图(SizeDistribution)和重叠量分布图(overlapDistribution)如下图所示。

我们可以看到,无论社团大小分布图还是重叠量分布图都大致满足幂律分布,且随着k值的减小,曲线变得更为平滑。但是当k值比较大时,因为社团较少,所以曲线呈现锯齿状图样,这可能是因为在使用网络爬虫技术对myspace网站进行数据收集时,由于该网站用户数量十分的庞大,网络爬虫并没有存储所有的用户信息,而只是选取了其中13569个用户来组成的myspace网络。尽管myspace网络基本满足应有的小世界及无标度特性,但从上图可以看出,其数据集仍然存在着缺陷。

3.4小结

3.4.1测试结果

首先,系统总体效率需要提高,无论是派系过滤算法还是系统其它功能,在分析myspace网络中效率都显得比较低,这在之前分析较小规模的网络上并不是十分明显。然后,社团划分的统计结果在大体上还是满足幂律分布的,本文认为这是因为myspace网络数据集存在的缺陷引起的,并不是因为社团划分系统算法运行的问题。考虑到myspace网站庞大的用户数量、测试条件与个人能力的限制,总体测试的结果还是可以接受的。最后,尽管派系过滤算法本身的时间复杂度偏高、计算量大,但是在更新更快的社团划分算法开发出来之前,它是分析大型复杂网络社团结构最符合实际要求的算法。

3.4.2应用验证

mysapce网络规模较大,因此要想直接观察其社团结构是非常不方便的,所以我们采用社团结构的统计特性来进行验证。对社团划分系统分析myspace网络所获得的社团结构进行统计分析,我们可以看出社团划分系统在大型人际关系网络分析中依然可以获得合理的结果。学校招生应用中,即使面对大规模的学生人际关系网络,也能够得到较为准确的结果,这在提高学校招生宣传的精准度上有良好促进作用。

4结束语

本文通过对市场营销理论的研究,对如何将教育营销理论融入到emBa招生这一具体问题进行了分析与探讨。本文通过将复杂网络理论引入教育营销中,分析人际关系网络中的复杂网络特性,尤其是其聚集聚团性,并根据该性质设计并实现了一套适用于emBa招生生源获取的人际关系社团分析系统。对典型的社会网络(myspace网络)实例的分析结果表明,该社团分析系统可以很好的对人际关系网络社团性质进行发现和获取,为学校招生应用中,即使面对大规模的学生人际关系网络,也能够得到较为准确的结果,这在提高学校招生宣传的精准度上有良好促进作用。

【参考文献】 

[1]张新民.中国emBa教育透视[J].企业管理,2004(05). 

[2]曾小军.民办高校引入营销理念与招生策略研究[J].教育导刊,2009(09). 

[3]周广训.谈高校营销的特点[J].中国成人教育,2004(09). 

[4]徐芳.教育营销和教育营销战略[J].广东职业技术师范学院学报,2001(1):7. 

[5]林进奎.营销创新与教育营销[J].东岳论丛,2004(03). 

网络爬虫基本原理篇10

关键词:网络论坛;意见领袖;pagerank算法;文本倾向性分析;舆情

中图分类号:tp391文献标识码:a文章编号:1009-3044(2011)22-5393-03

theDesignandRealizationofopinionLeadersDetectioninnetworkForum

GeBin1,JianGLin-cheng1,XiaoYan-dong1,SHiZong-lin1,GUoSi-lu2

(1.ScienceandtechnologyoninformationSystemsengineeringLaboratoryinnationalUniv.ofDefensetechnology,Changsha410073,China;2.HunanelectricpowerDesigninstitute,Changsha410073,China)

abstract:opinionleadersinnetworkforumplayanimportantroleduringtheformationofpublicopinion.Howtodetectopinionleadersfromhugecommentshasanimportantpracticalsignificance.asystemofopinionleadersautomaticdetectioninnetworkforumwasdesignedandrealizedbycomprehensiveusingwebcrawler,textextraction,textsentimentanalysis,influencecomputeandnetworkvisualization.operationresultsshowedthatthesystemwasaccurate,efficientandstrong.

Keywords:networkforum;opinionleaders;pagerank;sentimentanalysis;publicopinion

随着网络技术的迅猛发展和网民规模的快速增长,越来越多的公众通过网络参与社会讨论和表达社会意见。由于互联网具有交流平等、参与广泛的特点,许多国内外热点事件能够迅速形成巨大的网络舆论压力,网络已成为反映社会舆情的主要载体之一。

在网络舆情的形成过程中,意见领袖的助推作用显著。能提出指导性见解、具有广泛社会影响的人叫意见领袖,又称舆论领袖。意见领袖在网络论坛中积累了较高的声望,在舆情事件酝酿和发酵过程中,舆情主体更容易受到意见领袖的影响,意见领袖的言论和意见往往会影响和改变其他人的意见,引导和推动事态进一步发展,他们在网络舆情的发生、发展和消亡过程中的作用可能是积极的,也可能是消极的,因而对意见领袖的挖掘工作具有重要的现实意义。

近年来,越来越多的研究机构开始利用信息化手段研究网络舆情,关于网络意见领袖的研究成果也层出不穷。贾文凤[1]分析了网络论坛意见领袖的构成,以概括现象的方法对意见领袖影响力作了论述。周裕琼[2]以强国论坛“十大网友”为研究对象,总结概括了政治论坛中网络舆论意见领袖的特征及意见领袖发挥作用的机制。这两篇文献均以研究意见领袖的特征和重要性为主,未能实现意见领袖的挖掘。GaoJunbo等[3]对基于小世界网络的在线论坛中意见领袖的发现进行了研究,虽然找出了论坛中的意见领袖,但采用的是论坛单日数据作为数据集,结果准确性不高。

本文面向国际互联网论坛中的海量评论,设计并实现了网络论坛意见领袖自动挖掘系统,以期准确挖掘出论坛中的意见领袖,为相关网络舆情监管部门及时发现热点问题、引导网络舆情健康发展提供技术支持。

1关键技术

1.1网络数据采集技术

网络数据采集技术是网络舆情研究的基础,数据采集一般使用网络爬虫[4]实现。网络爬虫是一个沿着链接漫游web文档集合的程序,它一般驻留在服务器上,通过给定的种子URL,利用Http等标准协议读取相应文档,然后以文档中所有未访问过的URL作为新的起点,继续进行漫游,直到没有满足条件的新URL为止。网络爬虫的主要功能是自动从internet上的各web站点抓取web文档,并从中提取信息来描述该web文档,为搜索引擎站点的数据库服务器和网络舆情分析系统追加和更新数据提供原始数据。

1.2网页预处理技术

原始网页中往往含有大量的与研究无关的信息,且这些无关信息会影响到后续结果的处理,因此使用网页预处理技术来提取对研究有价值的正文信息。信息抽取技术的常用手段是通过正则表达式[5]实现,采用不同的正则表达式去分别匹配原始文件中的帖子标题、帖子内容、发帖作者、评论人和评论内容等信息,同时构造正则表达式过滤网页源码中的制表符、链接图片、字体等信息。只有通用性强、完善性好的正则表达式才能提高匹配的效率和准确率。

1.3影响力计算

意见领袖的主要作用体现在对其他用户的影响力上,pagerank[6]算法是google用于网页排名的算法,挖掘意见领袖实质是对论坛中用户的影响力进行排名并找出排名靠前的用户,两者具有相似点,文献[7]对应用该算法处理社会网络数据进行了尝试,并对采用该算法探测意见领袖的合理性进行了深入的探讨。

基于pagerank算法思想可对论坛中的帖子作者进行影响力计算。通过程序读入处理后的xml文件,将发帖者看作被链接的网页,回帖者作为链接网页,最后读入回帖文本,通过文本进行倾向性分析计算出此次链接的重要度结果。

1.4倾向性分析

分析用户之间关系时,除基本的连接关系外,一个用户对另一个用户的支持度计算是核心内容,通过对帖子的文本内容进行倾向性分析可提高支持度分析的准确性。文本倾向性分析是指通过挖掘和分析文本中的看法、好恶等主观信息,并对文本的情感倾向做出类别判断。倾向性分析一般由论坛情感语料库和帖子文本计算打分两部分组成。

论坛情感语料库的建立通过机器学习的方法实现,将论坛的历史帖子作为训练和测试语料,以支持向量机模型[8](SVm)作为分类器,其关键技术是中文分词和特征抽取[9]。中文分词是将一个字串分成词串,去掉没有意义的停用词,最终将一个句子分成名词、动词、形容词、副词等。特征抽取是挑选出各种代表情感的特征词,如“糟糕”、“很好”等。帖子文本计算打分建立在论坛情感语料库的基础上,计算过程先对文本进行分词并基于语料库抽取情感词,最后通过加权计算得到文本的情感倾向的计算结果。

2系统设计与实现

2.1系统总体结构

网络论坛意见领袖挖掘系统综合运用了网络爬虫、正则表达式匹配、文本倾向性分析、pagerank算法、网络可视化等多种信息处理技术,实现对网络论坛意见领袖的自动挖掘。

系统主要功能由以下6个子模块组成:网页抓取模块、网页信息提取模块、pagerank算法矩阵构造模块、意见领袖挖掘模块、挖掘结果验证模块和网络可视化模块,系统总体结构如图1所示。

2.2子模块功能实现

1)网页抓取模块。该模块利用改进后的开源爬虫netcrawler实现,根据用户提供的网络论坛种子URL抓取网页及相关帖子并存储到本地,供网页信息提取模块使用。

2)网页信息提取模块。该模块通过正则表达式匹配提取网页中的正文信息,包括网页标题、作者、发帖内容、回帖者、回帖内容等,并将同一个帖子的所有信息属性存储到xml文件中,最后生成论坛中所有帖子的xml文件库。

3)pagerank算法矩阵构造模块。该模块通过读入预处理得到的xml文件,结合文本倾向性分析构造算法矩阵。第i个用户每次回复第j个用户的回帖内容,经过倾向性分析计算所得支持度数值,矩阵上每个点p(i,j)对应数值即代表第i个用户对第j个用户的支持程度。

4)意见领袖挖掘模块。该模块是论坛意见领袖挖掘的核心,通过设定pagerank算法迭代收敛误差和需要提取的意见领袖人数,通过迭代计算得到论坛中的意见领袖。

5)挖掘结果验证模块。意见领袖挖掘模块得到的意见领袖可能是由于论坛中存在孤立结点导致等级沉没得到的,不具有孤立结点是pagerank使用的前提,因而需要验证挖掘结果的正确性。验证时主要是通过人工浏览某些构成了孤立的小网络用户是否被选为了意见领袖,如果存在表明结果有误,剔除这些结点后重新执行意见领袖挖掘模块。

6)网络可视化。该模块使用基于prefuse[10]的社会网络可视化工具Vizster实现。系统去掉了繁多的个人信息,增加了凸显意见领袖和查看总得分功能,并且由于Vizster支持可视化搜索、分析和自动关联节点等功能,通过系统能够很容易地观看到整个论坛用户的影响力结构图,并通过颜色区分快速发现意见领袖。

3运行实验及结果分析

3.1实验环境与实验数据

系统采用visualstudio2005编码实现,实验使用的pC机配置为内存2G,主频2.10GHz,操作系统为windowsXpprofessionalsp3。

实验数据集为天涯论坛篮球公园版块2011年5月1日前的所有主题与评论。程序运行结果如图2所示。

图3显示的是天涯论坛篮球公园版块论坛意见领袖可视化展示效果图。

3.2结果分析

在统计结果时发现椰子肥仔熊、缺啥有啥、阿杜犯规3个支持总人数仅有十多个的用户被选为了意见领袖,进一步查看发现三者相互支持且与外部很少交互,由此可见他们构成了一个孤立的小网络,导致了等级沉没。剔除这三个用户重新执行意见领袖挖掘模块,最终得到论坛意见领袖,对比查看天涯牛人堂上关于天涯篮球公园论坛意见领袖的资料,结果如表1所示。

由表1可以看出系统挖掘结果与依靠人工统计得出的意见领袖大致相同,系统运行得到的意见领袖准确率达到了90.9%,这充分体现了系统的准确性。两者之间存在的微小差异可能是爬取的数据集不够充分或者衡量指标不同导致的。进一步分析表明,天才混混qd、张佳玮、民非明是自由撰稿人、作家、资深篮球;天涯体育、地狱吸血鬼、甚爱毕大费是天涯篮球公园版主;赵一刀、商业包公、温酒一刀是篮球公园2010年度十大牛人;上帝之鹰和微雨霭芳原是论坛活跃用户,发表了大量帖子拥有众多粉丝。他们都具有广泛的影响力,符合意见领袖的特征。

4结论

本文综述了网络论坛意见领袖挖掘系统所需的关键技术,设计了系统的总体功能结构和运行流程,并综合运用多种信息处理技术实现了系统功能。经实际运行测试,系统能够准确探测出论坛意见领袖,与论坛的官方数据对比分析,证明了本系统所采用的方法是可行的,挖掘结果是准确的。随着论坛意见领袖重要性的不断凸显,该类系统的应用前景将越来越广泛。

参考文献:

[1]贾文凤.BBS舆论领袖的构成及其影响[J].青年记者,2006(20).

[2]周裕琼.网络世界中的意见领袖――以“强国论坛”十大网友为例[J].当代传播,2006(3).

[3]GaoJunbo,Zhangmin,JiangFan,etal.analysisofopinionLeaderinon-LineCommunities[J].anhui:UniversityofScienceandtechnologyofChina,2005.

[4]罗刚.自己动手写网络爬虫[m].北京:清华大学出版社,2010.

[5]余晟.精通正则表达式[m].北京:电子工业出版社,2009.

[6]余小兵.Google搜索引擎的核心――pageRank算法综述[J].电脑与电信,2006(12).

[7]吴令飞.寻找“意见领袖”:应用pageRank算法处理社会网络数据的尝试[D].北京:北京大学,2007.

[8]王素格.基于支持向量机的文本倾向性分类研究[J].中北大学学报:自然科学版,2008,29(5).

[9]单大力.中文weB文本倾向性分类研究[D].北京:北京交通大学,2007.