前言:中文期刊网精心挑选了计算机爬虫技术范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

计算机爬虫技术范文1
>> 基于陷阱技术的网络爬虫检测 基于网络爬虫原理的Web内容挖掘技术分析 基于网络爬虫的XSS漏洞挖掘技术 一种基于python语言的网络爬虫研究 基于Scrapy框架的分布式网络爬虫实现 基于多线程的网络爬虫设计与实现 基于网络爬虫的设计与实现 基于Websphinx网络爬虫的研究与改进 网络论坛爬虫的设计 基于webkit核心的移动中间件设计 基于WebKit浏览器的本地扩展方法 基于C#的网络爬虫搜索引擎的设计 基于网络爬虫的四川大学资讯整合网站的研究与设计 基于网络爬虫的股票信息预警系统的研究与实现 基于主题爬虫的网络零售竞争情报系统研究 基于网络爬虫的电子易购软件设计与实现 基于主题网络爬虫的创业政策信息采集研究与实现 基于异步JavaScript技术的水稻病虫害图像网络爬虫设计 larbin网络爬虫的体系结构 网络爬虫的设计与实现 常见问题解答 当前所在位置:l.
[3] Wikipedia. Regular expression [EB/OL]. [2013?04?23]. http:///wiki/Regular_expression.
[4] World Wide Web Consortium. Document object model [EB/OL]. [2013?04?23]. http:///DOM.
[5] ALVAREZ M, RAPOSO J, PAN A, et al. DeepBot: a focused crawler for accessing hidden web content [C]// Proceedings of DEECS 2007. New York, USA: ACM, 2007: 18?25.
[6] 彭轲,廖闻剑.基于浏览器服务的网络爬虫[J].硅谷,2009(4): 49?50.
[7] 刘兵.基于JavaScript等多链接分析的主题爬虫设计实现[J].许昌学院学报,2010,29(2):87?90.
[8] 范轩苗,郑宁,范渊.一种基于AJAX的爬虫模型的设计与实现 [J].计算机应用与软件,2010,27(1):96?99.
[9] WebKit Open Source Project. The WebKit open source project [EB/OL]. [2013?03?24]. http://.
[10] WebKit Open Source Project. JavaScriptCore [EB/OL]. [2013?03?24]. http:///wiki/JavaScriptCore.
计算机爬虫技术范文2
【关键词】网络爬虫;水稻病虫害;多线程;搜索策略
随着计算机和互联网技术的不断成熟和大量使用。怎样快速的帮用户在茫茫的互联网的海洋中找到需要的信息,已经成了互联网研究的一项重要的内容。为了让用户在互联网中快速有效的进行互联网搜索信息,一类被称为搜索引擎的搜索工具随之产生,给用户和他们所要搜索的信息之间提供了一座桥梁。而搜索引擎最重要的部分是网络爬虫,所以网络爬虫为搜索功能的实现奠定了重要的基石。
水稻是我国最重要的食品之一,在我国种植面积很大,分布全国各个地区。而影响我国每年的水稻产量的重要因素之一就是水稻的病虫害的发生,其控制水稻病虫害发生的问题一直是提高水稻产量的重要且急需解决的问题。
为结合科技力量进一步加快水稻病虫害防治的研究步伐,本文拟采用水稻病虫害图像网络爬虫搜索引擎,进一步推进水稻病虫害研究,有效改善水稻生产,进一步地促进我国水稻病虫害的法治,让我国的水稻产量得到有力的提升。
1 国内外研究现状
目前,基于爬虫技术的搜索引擎在互联网技术的飞速发展中闪耀,给农作物病虫害防治的研究提供了技术上的支持。同时,发达国家对水稻等作物病虫害防治情况的大力关注,越来越多的国家和机构加入使用爬虫技术来控制病虫害行列中来。
随着科学技术和生活水平的提高,网络已经成为人们生活的一部分,各种搜索引擎纷纷涌现,作为基础技术的爬虫技g也越来越成熟,国内许多搜索引擎巨头如百度,搜狗等等迅速向前推进,分别推出了各自的搜索引擎系统。同时,中国的“五年计划”高度关注农业发展,使得爬虫技术在农作物病虫害防治的问题上越来越受到公众的关注。
2 网络爬虫的定义
网络爬虫(也称为蜘蛛)是一种客户端程序或脚本,顾名思义,网络爬虫能像“蜘蛛”一样在特定的范围内获取到所需要的信息,网络爬虫是根据某些特定的规则来自动抓取网络上的信息。而且网络爬虫是搜索引擎的重要组成部分,通过对网页的自动提取,能从网页获取到搜索引擎所需的页面。在爬取网页信息时,为获取初始页面的URL列表,需从一个或多个初始网页的URL进行抓取,在抓取的过程中,自动将当前页面的新URL从队列中分类到抓取状态,直到满足系统的停止条件为止。
3 水稻病虫害图像网络爬虫设计
3.1 网络爬虫的模型分析
首先是抓取URL链接地址。从URL地址抓取开始,先确定URL是否重复,然后根据预先设置的广度来抓取图像,搜索图像时通过设计的算法和排序方式来进行搜索。搜索完成后将与主题相关的图像筛选出来,然后将筛选后的图下像载到本地中,与此同时也通过jdbc将图像存储到数据库中。然后任务列表再次开始抓取URL,使网络抓取器运行,依次循环,直到要抓取的URL线程完成为止。
3.2 网络爬虫的搜索策略
广度优先搜索策略是在当前搜索级别完成之后再执行下一级搜索。在尽可能多的页面的覆盖范围内,通常使用广度优先搜索方法来抓取用户所需要的信息,同时也因为该算法的设计和实现相对简单。有许多研究将广泛优先搜索策略应用于聚焦爬网程序。基本思想是,初始URL与页面之间的距离内具有一定的链接与主题的相关程度很大。另一种方法是使用广度优先搜索和网络过滤技术,首先采用广度优先策略来抓取页面,然后不相关的页面过滤掉。这些方法的缺点是随着爬网数量的增加,大量不相关的页面将被下载和过滤,并且算法的效率会降低
3.3 水稻病虫害图像网络爬虫设计
本设计通过研究异步JavaScript网络爬虫系统的关键技术问题,采用基于对象的程序切片算法,以及脚本执行引擎与切片模块的互操作技术进行设计。
将功能模块分为前台界面显示和后台数据抓取存库。前台界面显示主要分为两个部分:搜索导航部分和数据显示部分。界面分上下两个部分,上部分为搜索导航部分,比占40%;下部分为数据显示部分,比占60%。上部分是用来关键字搜索导航,对要搜索的水稻病虫害关键字进行全站搜索;下部分是用来显示搜索到的数据,用表格的形式分别显示水稻病虫害图片和相关介绍信息。后台数据抓取存库主要分为两个部分:抓取水稻病虫害数据和数据存入数据库。
通过关键字来获取并下载水稻病虫害图像主题的网络爬虫程序,下载满足客户需求的水稻病虫害图像。根据用户的不同需求,水稻病虫害主题网络爬虫程序需要实现以下目标:基于多线程设计,下载用户需求的所有的水稻病虫害图像,筛选出用户所需要的图像通过一定的正则表达式和算法,通过关键字来获取水稻病虫害图像主题的一个网络爬虫程序,通过设定的关键字来爬取网络上的图像,并下载满足客户需求的图像。
4 小结
运行爬虫程序后,在控制台输入要爬取的图像关键字,程序会在本地中生成一个image文件夹,文件夹内容包含html、img、txt三个文件夹,还有一个url.txt文本文件。Img文件夹是保存爬取下载的水稻病虫害图像,根据水稻病虫害的分类,img文件夹中可以实现八类不同病虫害图像的文件:稻曲病图像、稻瘟病图像、恶苗病图像、胡麻叶斑病图像、霜霉病图像、纹枯病图像、小球菌核病图像、叶鞘腐败病图像。
【参考文献】
[1]王艳阁.主题微博爬虫的设计与实现[D].中原工学院硕士论文,2013.
计算机爬虫技术范文3
关键词:爬虫技术;互联网;JAVA多线程;网页挖掘
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)15-0062-03
1 引言
随着云时代的来临,大数据的发展也越来越成为一种潮流。大数据通常用来指公司创造的大量结构化和非机构化化数据,这些数据被获取并存放到关系型数据库,在分析数据时往往会花费大量的时间和精力。“大数据”在互联网领域是指:互联网公司在正常运行过程中会生成、累积用户行为的网络数据。这些数据的规模是非常庞大,甚至大到不能用G或T的计量单位来衡量。在大数据时代,爬虫技术成为获取网络数据的重要方式。
互联网金融发展过程中需要搜集大量的数据资源,这个过程非常关键,并且实施起来较为困难。金融数据的搜集,是通过计算机技术与金融领域相关知识的综合,将金融经济的发展与相关数据进行集中处理,能够为金融领域的各个方面如经济发展趋势、经融投资、风险分析等提供“数据平台”,真实的数据资源还可以推进金融经济的快速发展和金融理论的创新。当今互联网的快速发展,网络上也充满各种金融信息,并且更新速度快,这使互联网成为金融领域获取数据资源重要一大方式。例如Butler,Leone,Willenborg和 Frank等公司都是利用互联网采集技术来抓取所需的数据资源。
2 互联网金融数据抓取的特点
2.1 互联网上金融方面的数据一般具有的特点
1)数据量大、种类繁多。对于一些规模较小且只需抓取一次的数据,一般复制粘贴或者手工记录即可,没有什么技术上的要求。但是,金融经济市场领域的数据一般规模巨大,例如需要获取某个结构一年的交易记录,数据量就是非常大的,而且数据资源往往来源于不同的机构或者不同的部门,想要准确地获取数据资源不是很容易。
2)可靠性、实时性。在研究金融理论或者做金融分析时,对数据的可靠性、实时性要求非常高。金融经济的发展模式瞬息万变,更新速度很快,为了及时的反映市场上经济发展状况,要求数据的来源具有实时性和可靠性。
3)金融经济领域的数据类型一般以文本和数值型为主,图片和视屏等多媒体类型的数据较少。
4)数据一般会从较官方的网站抓取。为了保证数据来源的可靠性和准确性,数据一般从较权威的机构获取,例如金融交易所、国家有关权威决策与信息部门和国内外各大互联网信息提供商。
5)抓取数据的目标网页主要有两种类型。第一类是URL固定但是信息实时更新的网页要定期访问并获取数据,例如一些网站的股票行情类数据;第二类是规模较大且近似网页中具有固定特征的数据。例如某些国家权威机关按时以某一固定格式各种数据报告。
我们可根据金融经济数据的这些特点,制定相应的方法与策略抓取数据资源。对于地址相对固定的网页,所面临的数据采集问题比较集中,不需要考虑各种技术因素的变化对采集的影响,我们可以更有针对性的收集数据,制定更高效、更合理的抓取策略。
2.2 获取网页信息
目前主流的网站开发技术主要有php、net和java的Alexa等,虽然说开发的网页格式五花八门,但它们传输数据的原理都一样,都是通过超文本传输协议(HTTP协议)将数据资源传送到客户的。微软公司提供的可扩展标记语言(XML)服务集合中的组件 MSXML(执行或开发xml所设计的程序)里面有个 XMLHTTP浏览器对象。该对象的原理基于HTTP 协议的,里面封装着很多方法和属性,这些方法和属性与网站信息双向交流有关。客户端调用 XMLHTTP对象搜集网页信息的过程主要包括以下几个步骤:
①首先建立XMLHTTP对象;
②利用XMLHTTP对象里面的Open方法与服务端建立连接,制定网页的地址(URL)和命令的发送方式;
③通过XMLHTTP中的Send 方法发送信息;
④等待服务端处理并返回结果。
数据的抓取在金融领域的研究中是一个关键环节。互联网中的数据具有规模庞大、实时性、准确性等特点,为金融经济的发展提供了重要的数据来源。通过爬虫技术抓取数据资源,可以高效的在互联网海量的数据中提取所需的数据资源。灵活而方便地定制抓取数据地方案,使抓取到的数据成为金融经济发展的可靠保证。
3 爬虫技术的实现
爬虫技术的设计是搜索引擎实现的关键技术,爬虫算法的好坏直接关系到搜索引擎性能的优良。经过多方面研究表明,“最好优先算法”应用于多重搜索中效果较好,但是这个算法本身也存在缺陷,例如收敛速度过快致使搜索的数据不全面,“查全率”太低。基于这个问题,本文研究如何改进这种算法,并实现网络爬虫。
3.1 网络爬虫的算法分析
爬虫在整个网络系统中自由搜索,能够自动识别URL,自动下载网页,并提取数据信息,存放到数据库中。整个过程都不需要人工的参与。当前主流的爬虫算法主要有广度优先算法、深度优先算法和最好优先算法等。传统的图算法主要应用在第一代web爬虫索引整个网络,该算法是以一个网页链接集作为核心,去递归的链接其他的网络页面,不关心网络中的数据内容,只追求在网络上最大的覆盖率,网页的个数越多越好。算法如图1所示。
3.1.1 深度优先搜索算法
深度优先搜索算法(DFS)在研究爬虫技术早期使用较多,它的搜索目标是要到达结构的最外结点,即搜索到不包含超链接的HTML文件。在一个网页中,当一个链接被选择后,链接的HTML文件执行DFS算法,完整的沿着一条链接搜索,走到边缘节点为止(即不包含任何链接的HTML文件),然后返回上一个页面链接的但是未搜索过的页面,再沿着这个搜索到的页面执行DFS算法即可。直到所有连接到的页面被搜索完成,算法结束。DFS算法的优点是能根据一个HTML文件查找到其所链接的所有HTML文件,能查出这个网页在互联网中的链接结构。但是DFS算法也有很大的缺点,因为整个网络的结构是非常深的,各个网页之间的链接关系也很复杂,很有可能陷入其中就无法返回。对于图4-1中的结构,使用深度优先遍历算法的返回结果是:A-F-G;E-H-I;B;C;D。
3.1.2 宽度优先搜索算法
广度优先(BFS),也叫宽度优先,在这里的定义就是层层爬行,沿着结构的宽度方向层层搜索。给定一个网页的URL时,首先搜索这个URL所链接的所有网页,遍历完这网页链接的所有网页之后,再遍历子网页所链接的所有网页,直至遍历完所有的网页为止,一般采用BFS策略来覆盖范围更广的网页。广度搜索相对于深度搜索,对数据抓取更容易控制些。对服务器的负载相应也明显减轻了许多,爬虫的分布式处理使得速度明显提高。而且BFS算法能够找到两个网页之间的最短路径,并且不会像DFS那样使程序陷入深层查找无法返回。缺点查找深层网页时效率较低。对于图4-1中的机构,BFS算法的访问顺序为A-B;C;D;F-G;E-H-I。
3.1.3 最好优先搜索算法
最好优先搜索(Best-First)是宽度优先搜索的扩展,基本算法思想是将各个节点表按照据目标的距离排序,再以节点的估计距离为标准选择待扩展的节点。
搜索过程为:
1)先建立一个搜索图G,里面包含初始节点集合S,open=(S), closed=()表示空表;
2)若集合open为空,则查找失败,并退出程序;
3)n = first(open); remove(n, open); add(n, closed);
4)若 n为目标结点,则查找成功 ,并可给出S到n的路径;
5)否则,扩展结点n, 生成不是n的祖先的后继结点集M={m} 把每个m作为n的后继结点加入G;
6)If m没有在open和closed集合中出现过Then add(m, open);
7)If m在open集合中有重复结点k,且g(m)
8) If m在closed集合中有重复结点k,且g(m)
①将closed集合中的结点k改为结点m(只需修改主链指针和f、g);
②按后继元素,修改k在open集合和closed集合中的后继元素f,g的值;
9) 按f值,按从小到大的顺序对open表中的结点排序,并重新返回到2步。
这些算法虽然都有各自的优点,但是它们的综合性能都不是很优。本文对这些算法进行了测试,结果表明最好最优搜索算法在爬虫技术应用上性能最佳。所以重点对Best-First算法进行研究并发现,虽然算法查找网页的准确率很高,但是由于算法存在收敛速度过快的缺点,使得不能在较大规模的网络上全面查找数据,即“查全率”太低。如何设计程序,提高最好最优算法的“查全率”才是网络爬虫技术实现的关键问题。
3.2 算法改进
对图2中的网络模型进行最佳优先算法的搜索,假设A1,A3,B1,B2,B3,B4,B5是相关的URL,A2是干扰页面,网络爬虫从A1开始查找。算法思想是:爬虫程序经过一定的计算,如果发现A2是不是查找目标,但是发现A1是要查找的网络页面,程序就会把A2的链接直接忽略掉,沿着A1的链接继续搜索。这样就会导致A3、B2、B3、B4、B5这些相关的页面被爬虫程序给忽略掉,从而大大降低了搜索效果,不能时爬虫全面搜索整个网络页面。
其中:A1、A3、B1、B2、B3、B4、B5是相关页面;
A2是干扰页面;
C0、C1、C2、C3、C4、C5、C6是访问路径。
本文提出的改进算法思想是,当查找到A2页面时,虽然这个页面与主题无关,但程序并不忽略这个链接,而是暂时保存起来,然后爬虫程序计算A2所链接的页面中是否存在需要用户需要查找的页面。算法设定一个参数f记录crawler在遇到干扰页面的链接时搜索的深度。只有当爬虫程序在搜索到f深度仍然没有发现所需要的页面,这时才会A2页面忽略掉。例如在上图中,如果爬虫经过c2、c3、c4、c5、c6这几条路径能够找到相关页面,就说明A2这个网页包含很多所需要的网页链接。根据这个思想,对最好优先搜索算了进行改进,以提高爬虫程序的“查全率”。改进算法利用了JAVA中的多线程机制,核心算法如下:
BF-BF(topic,starting-urls){
link_1=fetch link(starting_url);
While(visited
doc=fetch(link_1);
if(score_r1>r1)
{ enqueue_1(frontier,extract_links(doc),score_r1); }
else
{score_r2=link_score_r2(D,links);
if(score_r2>r2)
enqueue_1(frontier,extract_links(doc),score_r2);
else
enqueue_2(links); }}}
4 结束语
本文阐述了爬虫技术在互联网中的应用,并以爬虫搜索方法为研究目标,通过Java多线程对其中的最好最全算法进行算法实现。随着硬件技术、信息技术和物联网技术的不断发展,未来必将会出现大规模基于网页信息攫取的算法设计,各种新型的网络应用协议也会不断问世,这些技术成果都将极大地促进各类异构网络的融合过程,进一步提高计算机通信网络的数据分析功能。
参考文献:
[1] Otis Gospodnetic,Erik Hatcher.Lucene IN ACTION[M]. Manning Publication Co,2006.
[2] 袁津生,李群. 搜索引擎基础教程[M]. 清华大学出版社,2010.
[3] 刘兵. Web数据挖掘[M]. 余勇,等,译.北京:清华大学出版社,2009.
计算机爬虫技术范文4
佩奇的父亲是密歇根大学的计算机科学教授。在他的熏陶下,佩奇从6岁起就热衷于计算机。1995年,22岁的佩奇从美国密歇根大学拿到理工科学士学位后,来到斯坦福攻读计算机专业。
谢尔盖・布林是佩奇在斯坦福的学长,他给佩奇留下的第一印象并不太好。初次见面,在不少话题上,佩奇与布林都发生了激烈的争论。相对来说比较内向的佩奇很讨厌布林极为鲜明的个性和看待很多事情的强烈主见,不过,他转念一想――“我也是这样的人”,只是不喜欢表现出来而已。
斯坦福大学精英荟萃、竞争激烈,佩奇的父亲给他的忠告是―“做好博士论文,因为这会决定你将来的学术生涯。”佩奇在“扼杀”掉十几个都很有趣的想法后,最终把论文的题目确定在了当时正飞速发展的互联网上。
佩奇想在互联网上建立起一种链接,使得人们像写论文找论据一样可以方便地查找到自己想要的东西,并且评估这些资料的质量,把没用的丢掉,让“网络变得更有价值”。研究之后发现,当时整个互联网由大概一千万个文件,以及他们之间无法计数的链接组成。用网络爬虫爬行如此巨大的互联网所需要的计算资源远远超出了他的能力范围。不过,他还是非常用心地设计了自己的网络爬虫。不久后,佩奇的研究项目引起了布林的关注。
当时已经有几个搜索引擎存在,但这些搜索引擎都面临的一个难题是:总是显示不相关的列表,因为它们都是以关键字来排列搜索结果。而佩奇和布林则彻底改变了这一状况,把关联性大、更有意义的结果凸显出来。
计算机爬虫技术范文5
关键词:网络爬虫;网络并行处理;搜索策略;网页结构挖掘
中图分类号:TP393.08文献标识码:A文章编号:1007-9599 (2012) 03-0000-02
Web Access and Improvement Study on Detection System of the Web Chat Rooms
Sun Qun1,2,Qi Zhengdong3
(1. Hubei University of Technology,Wuhan430068,China;2.Jiangxi College of Construction,Nanchang330200,China;3.China Nerin Engineering Co.,Ltd.,Nanchang330031,China)
Abstract:Web chat with its low-cost,high-efficiency advantages of online real-time communication capabilities,thus becoming the most widely used Internet network services to network users.Detection of Internet chat rooms as a carrier-depth study of Web access to technical problems and the pretreatment.Of the principles and workflow of the web crawler,Web crawler in the introduction of network parallel multi-threading technology.Discuss the technical features of the WebLech and implementation technology,improvements made WebLech.
Keywords:Web crawler;Network parallel processing;Search strategy;Web structure mining
通过Google、Baidu等通用的搜索引擎或大型的网站资源在互联网上手工检索已不能满足目前部分网络应用的要求。本文以网络聊天室探测系统为研究载体,突出深入讨论网络专门搜索功能的优化。网页获取和预处理模块是其技术核心,如何合理设计或优化一种有效的网页获取程序显得尤其重要。主要针对网络爬虫的工作原理,引入并行多线程处理技术,解决网络爬虫器运行速度和准确性问题,最后提出可行的优化WebLech网络爬虫程序的方案应用于聊天室探测系统。
一、网络爬虫信息抓取分析
(一)网络爬虫的概念
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。网络爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。
(二)网络爬虫的工作原理和流程
网络爬虫是页面中最关键的部分,它的性能好坏直接影响着页面搜索的性能和处理速度。网络爬虫一般都维护者一个URL队列,利用该数据结构来存储已经发现并待访问和抓取的URL。URL的遍历方式一般有:广度优先、深度优先、随机访问等。网络爬虫的功能结构见图1。
图1 网络爬虫的功能结构图
网络爬虫的各个模块的主要功能介绍如下:
(1)下载模块:该模块是爬虫与Internet的接口,作用是通过web协议对网页的数据进行采集,将采集到的页面递给后续模块处理。
(2)页面解析模块:该模块的主要功能是将下载模块采集下来的页面进行解析,解析成html的统一代码,提取其中具有超链接锚标记的超链接地址,加入到超链接队列中。将获取的代码转化成统一的格式。
(3)链接过滤模块:该模块主要是针对重复链接和循环链接的筛选与过滤。
(4)URL数据库:用来储存经过过滤的URL地址,以标准的数据结构进行存储,为下一个环节的URL队列提供数据。
(5)URL队列:用来存放由URL数据库传递的URL地址,当URL为空时爬虫程序终止。
(6)Web数据库:将所有爬虫抓取的网页中与搜索特征相关的页面进行本地存储。
二、页面采集的并行处理
(一)并行处理概念的引入
计算必须在“合理”的时间内完成就需要高计算速度的领域包括科学和工程问题的数学建模和模拟。用当今计算机在合理的时间内完成求解的那些问题。在存储海量信息的环境必然存在时刻的更新和添加删除等操作,任何用户是无法忍受耗费大量时间与资源最后得到没有价值或错误的输出结果。因此,该聊天室探测系统需要高效的页面抓取模块,以保证网页库的更新,链接的有效性以及输出结果准确性。
(二)并行处理技术在网络爬虫器中的应用
为了提高网络爬虫的运行效率,并行爬行器一般包含多个爬虫,每个爬虫需要完成的任务和单个的爬行器类似,它们从互联网上下载网页,并把网页保存在本地的磁盘,从中抽取URL并沿着这些URL的指向继续爬行。由于并行爬行器需要分割下载任务,可能爬虫会将自己抽取的URL发送给其他爬虫。这些爬虫可能分布在同一个局域网之中,或者分散在不同的地理位置。图2描述了并行爬行器的一般架构。
图2 并行爬行器的一般架构
三、WebLech网络爬虫的改进
WebLech是一款很优秀的多线程网络爬虫程序,但如果直接做为搜索引擎的网络爬虫程序,还存在着不足,针对二个方面,做以下改进:
(一)扩充起始地址
WebLech运行时,从配置文件里获取定义的地址(startLocation)作为起始地址,并且仅能设置一个起始地址。如果Web服务器不设置启动网页时,WebLech可能抓取不到服务器中的任何网页。因此将起始地址和一些系统默认的启动文档组合后作为扩充后的起始地址,以增大搜索的范围。
把启动文件名连接在startLocation设置的IP后形成的新地址作为WebLech运行时的startLocation。遍历ipset地址集中的每个地址,把扩充后的每个ipaddress写入属性类对象props,然后执行随后的原程序至结束即可。
最后修改配置文件config/spider.properties里startLocation属性为ipaddress,代码如下:
props.setProperty("startLocation",ipaddress)
图3为WebLech的配置文件WebLech.config.spider。
图3 WebLech的配置文件
(二)修改链接
WebLech是依靠网页文件中的超链接工作的。超链接可分为图像超链接和文字超链接。图像超链包括背景图像的链接和链入图像,文字超链接包括链入文字、多窗口页面、浮动窗口和表单。为完善链接的处理,在类WebLech.spider.HTMLParser的函数List parseAsHTML(URL sourceURL,String textContent)的第4行之后增加浮动窗口和表单链接。
例如:extractAttributesFromTags("iframe","src",sourceURL,newURLs,newURLSet,textContent);
基于内容的搜索引擎不需要搜索图像,可删除与图像匹配有关的代码。
参考文献:
[1]刘强国.主题搜索引擎设计与研究[D].成都电子科技大学,2007
计算机爬虫技术范文6
【关键词】jsp 垂直搜索引擎 多线程
21世纪最最主要的发明是计算机的出现,而在由计算机组成的庞大的网络中最重要的是信息。有这样一种说法:在这个世纪,谁掌握的信息量大,谁就能够有一番作为;由此可见信息的重要性。但信息又是什么?信息是用来消除随机不定性的东西。那又如何在互联网的庞大的信息量中如何精确的找到自己想要的信息是我们迫在眉睫的事情。传统的通用搜索引擎已经不能够满足人们日益增长的需要;使得对于特定的信息用特定的搜索引擎如春日的竹笋般快速成长。基于这样的情况,结合compass,开发了基于Lucene的垂直搜索引擎。
对于搜寻特定的信息的搜索引擎的讨论一直是各个研究者的主要话题之一。特定的搜索引擎的出现使得我们解决了常规搜索引擎中出现的一些问题,提高了人们的查询质量。对于社会的进步有很大的帮助作用。
1 系统设计
1.1系统构建与业务流程
垂直搜索引擎系统以web应用系统为基础平台。利用Lucene实现的索引库和Heritrix网络爬虫来实现信息的定位与信息的查找,以及实现对搜索到的信息进行分析和存储;利用前台的web应用来实现信息的展现和分类,并实现对所得信息的分析显示以及结构化显示与界面的美观化。以多态性为核心,针对多个进程的查找的快速的、高效的实现信息的查找业务。如图1所示。
1.2 功能模块设计
(1)信息更新模块。该模型包括了网络爬虫会自动更新索引库中商品的信息内容。
(2)多线程抓取模块。改模块采取多个线程同时抓取网络中的资源,使得我们能够更快的更新索引库中的信息,并且有利于资源的管理。
(3)使用开源的compass的搜索引擎框架模块。改框架提供了一套开源的、高性能的、可灵活配置的搜索框架,从而为用户的应用程序提供搜索功能。
(4)排序、过滤和分页模块。对检索的结果进行排序,把优先度高的内容首先展现出来等。
(5)Word、excel、pdf的处理模块。网络爬虫通过对抓取的信息进行整理;使得我们的信息更加结构化。
(6)索引库模块。主要包括是否建立索引、是否存储、是否分词;另外要注意的是在索引的建立和索引的读取是使用的分词方式一定要一致;防止采用不同的分词方式所造成的分词展现不同。
1.3 数据库设计
为了提高搜索引擎的检索效率,将爬取到的数据格式化后存入数据库中。目前采用的数据库管理系统是MySql5.0,设计的实体表格主要有两个,一个是商品的详细信息列表,包括商品编号、商品名称、分类、价格、厂家、上市时间、品牌等31个字段。另一个是购买评价记录,包括系统编号、商品编号、评价信息等字段。
2 基于Lucene的垂直搜索引擎的实现
采用开源lucene组件以及eclipse开发环境对垂直搜索引擎系统进行开发。
2.1 数据基础
21世纪最重要的是信息。信息是用来消除随机不定性的东西。而目前的像百度等这样的大型的通用搜索引擎虽然可以解决一些信息的查询问题;但不能够很精确的查找到特定的商品;故使得社会上对于特定的搜索引擎的需求量急剧增加。为了使得本文有一个更加良好可行的应用环境,我们需要建立合适的索引库。首先对搜索到的信息是否建立索引、是否存储索引等问题有一个概念模型;并对索引搜索到的信息的存储在一个特定的路径下,方便下次的查找。其次,索引库的设计可以实现对jsp页面的查询提供一个可靠的服务。另外,在建立索引库之前需要做好一系列的准备工作,如寻找一两个主要的信息来源目标网站作为垂直搜索引擎的入口等。
2.2 系统运行实例
系统界面主要的功能是对特定商品的查询;通过爬取多个电子商务网站的同一类商品或同一种商品,给用户展示出商品贪信息的对比,尤其是对用户评价的对比,为购买者推荐出性价比最高的商品。通过测试10000条商品信息与15000条商品购买评价记录,基于Lucene的垂直搜索引擎可以很好地为用户推荐出性价比较高的商品。在搜索列表展示时,主要使用开源的compass的搜索引擎框架模块、排序、过滤和分页模块,并记录下用户的搜索行为,分析用户的个性特征,将用户对商品的浏览次数,购买情况作为修改化推荐列表(猜您喜欢)的排序权重,将与购买者最相关的商品排在前面,方面购买者定位,节约检索的时间。
3 结束语
通过使用开源的Lucene搜索引擎工具和j2ee技术开发的搜索引擎系统稳定易行;能够使人们在此搜索引擎中获得他们想要的精确的信息;可以减少他们的分析信息的时间;帮助他们在这个大数据时代中快速的利用信息。
垂直搜索引擎是基于Lucene的垂直搜索引擎的实现的具体实法,采用了多线程抓取网页的方法抓取信息,大大的增强了系统的处理信息的速度,研发的基于Lucene的垂直搜索引擎可以为购买者推荐出合适的商品。
参考文献