首頁 > 文章中心 > 網(wǎng)絡(luò)爬蟲

      網(wǎng)絡(luò)爬蟲

      前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇網(wǎng)絡(luò)爬蟲范文,相信會(huì)為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。

      網(wǎng)絡(luò)爬蟲

      網(wǎng)絡(luò)爬蟲范文第1篇

      關(guān)鍵詞:網(wǎng)絡(luò)輿情;網(wǎng)絡(luò)爬蟲;網(wǎng)絡(luò)資源;爬蟲測(cè)速;主題更改

      中圖分類號(hào):TP391.3

      21世紀(jì)是信息科學(xué)技術(shù)飛速發(fā)展的世紀(jì),互聯(lián)網(wǎng)在生活中的應(yīng)用越來越廣泛,尤其是隨著智能手機(jī)逐漸普遍,人們能夠通過移動(dòng)互聯(lián)網(wǎng)更加便捷地獲得外部資訊。網(wǎng)絡(luò)輿情是當(dāng)前網(wǎng)民們針對(duì)熱點(diǎn)社會(huì)事件以及社會(huì)政治經(jīng)濟(jì)狀況等內(nèi)容反映出的態(tài)度總和。“管中窺豹,時(shí)見一斑”,可以說網(wǎng)絡(luò)輿情就是當(dāng)前社會(huì)現(xiàn)狀的放大鏡,針對(duì)這些態(tài)度思想及政治傾向的社會(huì)輿論信息的收集整合,是分析社會(huì)動(dòng)向、研究人民需求的重要手段。

      互聯(lián)網(wǎng)引擎搜索技術(shù)并未完全成熟,在很多具體環(huán)節(jié)仍舊存在著缺點(diǎn),嚴(yán)重制約著網(wǎng)絡(luò)輿情監(jiān)測(cè)工作的全面展開。傳統(tǒng)的網(wǎng)絡(luò)爬蟲技術(shù)在進(jìn)行網(wǎng)絡(luò)信息的獲取時(shí),對(duì)其內(nèi)容的處理精確性和不足,存在著無用信息過多和部分關(guān)鍵信息缺失的情況。因而,針對(duì)網(wǎng)絡(luò)爬蟲技術(shù)進(jìn)行研究,提出更為有效的優(yōu)化措施是一項(xiàng)十分必要的工作。

      1 互聯(lián)網(wǎng)輿情檢索技術(shù)

      現(xiàn)階段建設(shè)的網(wǎng)絡(luò)輿情監(jiān)測(cè)系統(tǒng)基本涵蓋了所有互聯(lián)網(wǎng)領(lǐng)域的基本技術(shù),是一項(xiàng)復(fù)雜而龐大工程。但從系統(tǒng)的功能實(shí)現(xiàn)上看,輿情監(jiān)測(cè)系統(tǒng)的關(guān)鍵技術(shù)是由互聯(lián)網(wǎng)信息采集技術(shù)和文本信息抽取技術(shù)構(gòu)成的。

      1.1 互聯(lián)網(wǎng)信息采集技術(shù)簡介

      作為互聯(lián)網(wǎng)搜索引擎獲得信息的基本技術(shù),信息采集技術(shù)的實(shí)現(xiàn)方法包括元搜索和網(wǎng)絡(luò)爬蟲兩種模式。這也是當(dāng)前網(wǎng)絡(luò)輿情監(jiān)測(cè)信息獲得的主要途徑。

      所謂元搜索技術(shù),就是在檢索過程中將多個(gè)網(wǎng)絡(luò)搜索引擎以串聯(lián)的方式運(yùn)行,監(jiān)測(cè)方提交的搜索條件被初步處理后,分送給這些串行的搜索引擎,由其各自完成對(duì)相應(yīng)數(shù)據(jù)庫信息的檢索工作,在獲得初步搜索結(jié)果后,再將這部分信息進(jìn)行二次加工,通過去重、排序、過濾等方式完成冗余信息的處理。元搜索技術(shù)在檢索信息全面性方面要明顯優(yōu)于單搜索引擎技術(shù)。同時(shí),元搜索技術(shù)在進(jìn)行信息檢索時(shí)并不需要對(duì)所有互聯(lián)網(wǎng)信息進(jìn)行搜索,具有明顯的效率優(yōu)勢(shì)。

      1.2 網(wǎng)頁信息抽取及預(yù)處理技術(shù)

      作為網(wǎng)絡(luò)信息獲取的最終步驟,對(duì)檢索程序獲得的網(wǎng)頁信息進(jìn)行抽取和預(yù)處理是搜索信息全面的重要影響因素。所謂網(wǎng)頁信息抽取及預(yù)處理技術(shù)是將網(wǎng)絡(luò)信息中包含的自然語言根據(jù)檢索條件進(jìn)行提取,從中獲得需要的實(shí)體、關(guān)系、事件等要素,最終并用易于理解接受的規(guī)范化形式對(duì)結(jié)果進(jìn)行記錄和展示。現(xiàn)階段一個(gè)成熟的互聯(lián)網(wǎng)網(wǎng)站,其頁面通常包括導(dǎo)航欄、正文標(biāo)題、正文內(nèi)容、相關(guān)鏈接、推廣信息、版權(quán)公告等。而在這些內(nèi)容中,真正吸引用戶的是正文標(biāo)題和正文內(nèi)容,也就是切合用戶需求的主體信息。在獲取網(wǎng)絡(luò)信息的過程中盡量獲得這些主體內(nèi)容,對(duì)其他次要信息進(jìn)行選擇性忽略正是網(wǎng)頁信息抽取及預(yù)處理技術(shù)重要的功能。

      2 輿情監(jiān)測(cè)網(wǎng)絡(luò)爬蟲技術(shù)簡介

      作為當(dāng)前重要的互聯(lián)網(wǎng)信息采集技術(shù),網(wǎng)絡(luò)爬蟲(We-bCrawler)技術(shù)在實(shí)際應(yīng)用中收到了較好的效果。當(dāng)前各領(lǐng)域構(gòu)件的輿情采集系統(tǒng)中廣泛采用的是Heritrix網(wǎng)絡(luò)爬蟲,這一開源程序允許用戶的自主修改移植。Heritrix主要有三大部件:范圍部件、邊界部件、處理器鏈。其中,范圍部件控制抓取的URL入隊(duì)過程;邊界部件則對(duì)選定的URL的收集情況進(jìn)行監(jiān)測(cè),進(jìn)而選擇下一個(gè)URL,排除已處理URL;處理器鏈則可視為URL處理器,其工作結(jié)果會(huì)反饋給邊界部件。

      網(wǎng)絡(luò)爬蟲的工作流程是從未訪問URL隊(duì)列中選取目標(biāo)并開始爬行,通過URL的指向作用,引導(dǎo)程序識(shí)別目標(biāo)網(wǎng)頁,通過事先認(rèn)可的網(wǎng)絡(luò)協(xié)議將網(wǎng)頁內(nèi)容爬取抽取出來,然后解析內(nèi)容其中包括目標(biāo)網(wǎng)頁內(nèi)的新URL,并將這部分URL添加進(jìn)未訪問列表,完成爬取后獲取的內(nèi)容存放到本地網(wǎng)頁庫內(nèi)。

      3 提高網(wǎng)絡(luò)爬蟲在輿情監(jiān)測(cè)應(yīng)用水平的措施

      網(wǎng)絡(luò)爬蟲的本質(zhì)是能夠使實(shí)現(xiàn)網(wǎng)絡(luò)信息自動(dòng)提取代碼程序,是網(wǎng)絡(luò)搜索引擎功能的主要實(shí)現(xiàn)手段。網(wǎng)絡(luò)爬蟲包括通用爬蟲和面向主題爬蟲兩種,當(dāng)前網(wǎng)絡(luò)輿情監(jiān)測(cè)使用的面向主題網(wǎng)絡(luò)爬蟲程序,會(huì)通過網(wǎng)頁分析算法對(duì)非設(shè)定主題鏈接進(jìn)行排除過濾,提高了搜索的精確性。當(dāng)前,網(wǎng)絡(luò)輿情監(jiān)測(cè)中的面向主題爬蟲技術(shù)的主要研究對(duì)象的行業(yè)領(lǐng)域的URL搜索策略問題。

      3.1 改善爬蟲網(wǎng)絡(luò)利用率的解決方案

      網(wǎng)絡(luò)爬蟲的利用率是當(dāng)下輿情監(jiān)測(cè)工作的重要限制因素,高效的爬蟲利用能夠更為便捷地獲得全面而準(zhǔn)確的信息。

      為了準(zhǔn)確掌握爬蟲工作的效率,我們?cè)谂老x中加入測(cè)速的方法,對(duì)爬蟲抓取速度進(jìn)行監(jiān)測(cè)和工作特征數(shù)據(jù)進(jìn)行分析。根據(jù)監(jiān)測(cè)結(jié)果,在抓取速度較慢的階段,采取相應(yīng)措施進(jìn)行修正,保證程序?qū)W(wǎng)路資源的高效利用。這一解決方案的具體實(shí)現(xiàn)步驟如下:

      (1)爬蟲抓取速度監(jiān)控。抓取速度是進(jìn)行衡量信息獲取水平的重要衡量因素,影響爬蟲的網(wǎng)頁抓取速度主要有兩個(gè)因素,分別是抓取頁面的大小和抓取這些頁面所耗費(fèi)的時(shí)間。因而,可以根據(jù)基本的換算關(guān)系定義網(wǎng)絡(luò)爬蟲抓取速度B:B=PT,式中:T為爬蟲進(jìn)行抓取的時(shí)間間隔;P代表該時(shí)間間隔內(nèi)抓取頁面的大小。

      (2)爬行策略更改。40%正常水平的抓取速度是十分低效的,這時(shí)必須采取相應(yīng)的措施進(jìn)行解決。常見的措施主要包括:減少爬蟲的線程數(shù);暫停當(dāng)前爬蟲的運(yùn)行,選擇適當(dāng)?shù)臅r(shí)間繼續(xù)爬行;更換爬行網(wǎng)站。

      3.2 改善爬蟲主題覆蓋率的解決方案

      當(dāng)前的社會(huì)熱點(diǎn)層出不窮,具有一定的突然性,同時(shí)在人們的討論和交流中會(huì)進(jìn)一步發(fā)酵,產(chǎn)生的信息量很大。為了保證網(wǎng)絡(luò)輿情監(jiān)測(cè)工作的順利進(jìn)行,就要求爬蟲程序具有較高的抓取的覆蓋率。另外,在進(jìn)行網(wǎng)頁內(nèi)容的抓取過程中,爬蟲程序需要執(zhí)行網(wǎng)頁與主題相關(guān)度的計(jì)算,會(huì)影響爬行速度。所以在進(jìn)行網(wǎng)絡(luò)爬蟲抓取優(yōu)化時(shí),通常會(huì)使用在傳統(tǒng)爬蟲中加入主題更改模塊的形式,即保證了抓取速度的同時(shí)也提高了主題覆蓋率。

      3.3 系統(tǒng)設(shè)計(jì)與測(cè)試

      通過以上分析可知,提高爬蟲系統(tǒng)工作效率的關(guān)鍵是在其內(nèi)部添加測(cè)速模塊和主體更改模塊,由此可完成設(shè)計(jì)方案的優(yōu)化。該爬蟲在傳統(tǒng)爬蟲的基礎(chǔ)上添加了爬蟲測(cè)速模塊和主題更改模塊。

      4 結(jié)束語

      網(wǎng)絡(luò)爬蟲技術(shù)是當(dāng)前輿情監(jiān)測(cè)系統(tǒng)中使用的重要技術(shù),在網(wǎng)頁內(nèi)容獲取方面發(fā)揮了重要作用。限制這一技術(shù)進(jìn)一步發(fā)揮作用的主要原因是爬蟲程序的網(wǎng)絡(luò)資源利用率的問題。同時(shí),網(wǎng)絡(luò)輿情監(jiān)測(cè)檢索突發(fā)性和大數(shù)據(jù)性特征,要求爬蟲抓取信息的過程更為迅速,主體覆蓋面也要更廣。本文通過在傳統(tǒng)爬蟲中加入了爬蟲測(cè)速監(jiān)控模塊和主題更改模塊的形式,進(jìn)行了抓取速度和覆蓋率的監(jiān)測(cè)實(shí)驗(yàn),其結(jié)果表明,這一優(yōu)化方案有效提高了爬蟲程序的執(zhí)行效率和信息獲得的全面性,是一種值得認(rèn)可的檢索技術(shù)。

      參考文獻(xiàn):

      [1]王桂梅.主題網(wǎng)絡(luò)爬蟲關(guān)鍵技術(shù)研究[D].哈爾濱工業(yè)大學(xué),2009.

      網(wǎng)絡(luò)爬蟲范文第2篇

      關(guān)鍵詞:網(wǎng)絡(luò)爬蟲,策略,搜索引擎

       

      網(wǎng)絡(luò)快速發(fā)展的今天,互聯(lián)網(wǎng)承載著海量的信息,能夠準(zhǔn)確快速的提取我們所需要的信息是現(xiàn)在的挑戰(zhàn)。傳統(tǒng)的搜索引擎有Yahoo,Google,百度等,這些檢索信息的工具是人們每天訪問互聯(lián)網(wǎng)的必經(jīng)之路。但是,這些傳統(tǒng)性搜索引擎存在著局限性,它不能全面的準(zhǔn)確的找到所需要的信息,也會(huì)使一些和需求無關(guān)的內(nèi)容一起搜索到。嚴(yán)重的降低了使用這些信息的效率,所以說提高檢索信息的速度和質(zhì)量是一個(gè)專業(yè)搜索引擎主要的研究內(nèi)容。

      1.搜索引擎的研究

      1.1搜索引擎的分類

      搜索引擎按其工作方式可分為三種,分別是全文搜索引擎,目錄索引類搜索引擎[1]和元搜索引擎。

      1. 全文搜索引擎

      全文搜索引擎是最常用搜索引擎,大家最熟悉的就是國外的代表Google,和國內(nèi)的代表百度。它們通常都是提取各個(gè)網(wǎng)站的網(wǎng)頁文字存放在建立的數(shù)據(jù)庫中,檢索與用戶查詢條件匹配的相關(guān)記錄,然后按其自己設(shè)定的排列順序?qū)⒔Y(jié)果返回給用戶。

      從搜索結(jié)果來源的角度,全文搜索引擎又可細(xì)分為兩種,一種是擁有自己的檢索程序,它們擁有自己的網(wǎng)頁數(shù)據(jù)庫,搜索到得內(nèi)容直接從自身的數(shù)據(jù)庫中調(diào)用,如Google和百度;另一種則是租用其他引擎的數(shù)據(jù)庫,但是,是按自定的格式排列搜索結(jié)果,如Lycos引擎。

      2.目錄索引型搜索引擎

      目錄索引,就是將網(wǎng)站分類,然后存放在相應(yīng)的目錄里,用戶在查詢所需要的內(nèi)容時(shí)有兩種選擇一種是關(guān)鍵詞搜索,另一種是按分類目錄一層一層的查找。據(jù)信息關(guān)聯(lián)程度排列,只不過其中人為因素要多一些。如果按分層目錄查找,某一目錄中網(wǎng)站的排名則是由標(biāo)題字母的先后以關(guān)鍵詞搜索,返回的結(jié)果跟搜索引擎一樣,也是按自定順序決定。

      目錄索引只能說有搜索功能,但僅僅是按目錄分類的網(wǎng)站鏈接列表。用戶完全可以不用進(jìn)行關(guān)鍵詞查詢,僅靠分類目錄也可找到需要的信息。目錄索引型搜索引擎中最具代表性的是Yahoo(雅虎)。其他著名的還有Look Smart、About等。國內(nèi)的搜狐、新浪、網(wǎng)易搜索也都屬于這一類。

      3.元搜索引擎

      當(dāng)用戶在進(jìn)行查詢時(shí),元搜索引擎可以同時(shí)在其他多個(gè)引擎上進(jìn)行搜索,將檢索結(jié)果進(jìn)行統(tǒng)一處理,并將結(jié)果以統(tǒng)一的格式返回給用戶。正因?yàn)槿绱耍@類搜索引擎的優(yōu)點(diǎn)是返回結(jié)果的信息量更全面,但是缺點(diǎn)就是無用的信息太多不能準(zhǔn)確的找到用戶需要的結(jié)果。

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

      在搜索結(jié)果排列方面,不同的元搜索引擎有不同的結(jié)果排列的方式。如Dogpile,就直接按來源引擎排列搜索結(jié)果,如Vivisimo,是按自定的規(guī)則將結(jié)果重新進(jìn)行排列。。

      1.2搜索引擎的工作原理

      搜索引擎主要是對(duì)用戶要求的信息進(jìn)行自動(dòng)信息搜集,這個(gè)功能共分為兩種:一種是定期搜索,即每隔一段時(shí)間搜索引擎主動(dòng)派出“Spider”程序,目的是對(duì)一定IP地址范圍內(nèi)的互聯(lián)網(wǎng)站進(jìn)行檢索,如果一旦發(fā)現(xiàn)新的網(wǎng)站,它會(huì)自動(dòng)提取網(wǎng)站的信息和網(wǎng)址加入自己的數(shù)據(jù)庫;另一種是提交網(wǎng)站搜索,即網(wǎng)站擁有者主動(dòng)向搜索引擎提交網(wǎng)址,搜索引擎在一定時(shí)間內(nèi)定向向你的網(wǎng)站派出蜘蛛程序,掃描你的網(wǎng)站并將有關(guān)信息存入數(shù)據(jù)庫,以備用戶查詢。

      如果用戶以關(guān)鍵詞查詢所需要的信息時(shí),搜索引擎會(huì)在數(shù)據(jù)庫中進(jìn)行搜尋,如果找到與用戶要求內(nèi)容相匹配的網(wǎng)站時(shí),搜索引擎通常根據(jù)網(wǎng)頁中關(guān)鍵詞的匹配程度,出現(xiàn)的位置/頻次,鏈接質(zhì)量等特殊的算法計(jì)算出各網(wǎng)頁的相關(guān)度及排名等級(jí),然后根據(jù)關(guān)聯(lián)度高低,按順序?qū)⒂脩羲枰膬?nèi)容反饋給用戶。

      2.網(wǎng)絡(luò)爬蟲

      2.1通用網(wǎng)絡(luò)爬蟲和聚焦網(wǎng)絡(luò)爬蟲的工作原理

      網(wǎng)絡(luò)爬蟲是搜索引擎的重要組成部分,它是一個(gè)自動(dòng)提取網(wǎng)頁的程序,為搜索引擎從網(wǎng)上下載網(wǎng)頁。

      傳統(tǒng)爬蟲從一個(gè)或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件。。

      與傳統(tǒng)爬蟲相比,聚焦爬蟲的工作流程則較為復(fù)雜,需要根據(jù)一定的網(wǎng)頁分析算法過濾與主題無關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊(duì)列。然后,它將根據(jù)一定的搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng)頁URL,并重復(fù)上述過程,直到達(dá)到系統(tǒng)的某一條件時(shí)停止。另外,所有被爬蟲抓取的網(wǎng)頁將會(huì)被系統(tǒng)存起來,進(jìn)行一定的分析、過濾,并建立索引,為了方便之后的查詢和檢索。

      2.2網(wǎng)絡(luò)爬蟲的搜索策略

      1.IP 地址搜索策略

      IP地址搜索策略是先給爬蟲一個(gè)起始的IP地址,然后根據(jù)IP地址以遞增的方式搜索本IP地址段后的每一個(gè)地址中的文檔,它完全不考慮各文檔中指向其它Web 站點(diǎn)的超級(jí)鏈接地址。這種搜索策略的優(yōu)點(diǎn)是搜索比較全面,因此能夠發(fā)現(xiàn)那些沒被其它文檔引用的新文檔的信息源;但是缺點(diǎn)是不適合大規(guī)模搜索。

      2. 深度優(yōu)先搜索策略

      深度優(yōu)先搜索是一種在開發(fā)爬蟲早期使用較多的方法。它的目的是要達(dá)到被搜索結(jié)構(gòu)的葉結(jié)點(diǎn)(即那些不包含任何超鏈的HTML文件) 。例如,在一個(gè)HTML文件中,當(dāng)一個(gè)超鏈被選擇后,被鏈接的HTML文件將執(zhí)行深度優(yōu)先搜索,也就是說在搜索其余的超鏈結(jié)果之前必須先完整地搜索單獨(dú)的一條鏈。深度優(yōu)先搜索沿著HTML文件上的超鏈走到不能再深入為止,然后返回到某一個(gè)HTML文件,再繼續(xù)選擇該HTML文件中的其他超鏈。當(dāng)不再有其他超鏈可選擇時(shí),說明搜索已經(jīng)結(jié)束。

      3. 寬度優(yōu)先搜索策略

      寬度優(yōu)先搜索的過程是先搜索完一個(gè)Web 頁面中所有的超級(jí)鏈接,然后再繼續(xù)搜索下一層, 直到底層為止。例如,一個(gè)HTML 文件中有三個(gè)超鏈,選擇其中之一并處理相應(yīng)的HTML文件,然后不再選擇第二個(gè)HTML文件中的任何超鏈, 而是返回并選擇第二個(gè)超鏈,處理相應(yīng)的HTML文件,再返回,選擇第三個(gè)超鏈并處理相應(yīng)的HTML文件。當(dāng)一層上的所有超鏈都己被選擇過,就可以開始在剛才處理過的HIML 文件中搜索其余的超鏈。

      寬度優(yōu)先搜索策略的優(yōu)點(diǎn):一個(gè)是保證了對(duì)淺層的優(yōu)先處理,當(dāng)遇到一個(gè)無窮盡的深層分支時(shí),不會(huì)導(dǎo)致陷進(jìn)WWW 中的深層文檔中出現(xiàn)出不來的情況發(fā)生;另一個(gè)是它能在兩個(gè)HTML文件之間找到最短路徑。

      寬度優(yōu)先搜索策略通常是實(shí)現(xiàn)爬蟲的最佳策略,因?yàn)樗菀讓?shí)現(xiàn),而且具備大多數(shù)期望的功能。。但是如果要遍歷一個(gè)指定的站點(diǎn)或者深層嵌套的HTML文件集,用寬度優(yōu)先搜索策略則需要花費(fèi)比較長的時(shí)間才能到達(dá)深層的HTML文件。

      2.3網(wǎng)絡(luò)爬蟲的發(fā)展趨勢(shì)

      隨著AJAX/Web2.0的流行,如何抓取AJAX等動(dòng)態(tài)頁面成了搜索引擎急需解決的問題,如果搜索引擎依舊采用“爬”的機(jī)制,是無法抓取到AJAX頁面的有效數(shù)據(jù)的。對(duì)于AJAX這樣的技術(shù),所需要的爬蟲引擎必須是基于驅(qū)動(dòng)的。而如果想要實(shí)現(xiàn)事件驅(qū)動(dòng),首先需要解決以下問題:第一,JavaScript的交互分析和解釋;第二,DOM事件的處理和解釋分發(fā);第三,動(dòng)態(tài)DOM內(nèi)容語義的抽取。

      3.結(jié)束語

      本文闡述了搜索引擎的原理以及網(wǎng)絡(luò)爬蟲的工作原理和發(fā)展趨勢(shì),網(wǎng)絡(luò)爬蟲技術(shù)的研究對(duì)搜索引擎的應(yīng)用和發(fā)展有著十分重要的意義。抓住準(zhǔn)度和速度兩個(gè)大方向,進(jìn)一步的深入網(wǎng)絡(luò)爬蟲技術(shù),在耗費(fèi)最少的網(wǎng)絡(luò)資源的前提下使搜索引擎能夠更準(zhǔn)確更快捷的找到人們的需求。

      參考文獻(xiàn)

      [1] Edwards, J.,McCurley, K. S., and Tomlin, J. A. (2001). 'An adaptive model foroptimizing performance of an incremental web crawler'. In Proceedings ofthe Tenth Conference on World Wide Web (Hong Kong: Elsevier Science): 106–113.doi:10.1145/371920.371960.

      [2]劉金紅,陸余良,主題網(wǎng)絡(luò)爬蟲研究綜述,計(jì)算機(jī)應(yīng)用研究院,2007(10):26-27.

      [3]王巖,搜索引擎中網(wǎng)絡(luò)爬蟲技術(shù)的發(fā)展,電信快報(bào),2008(10):19-20.

      [4]劉世濤,簡析搜索引擎中網(wǎng)絡(luò)爬蟲的搜索策略,阜陽師范學(xué)院學(xué)報(bào),2006(9):60-61.

      網(wǎng)絡(luò)爬蟲范文第3篇

      【關(guān)鍵詞】網(wǎng)絡(luò)爬蟲;WEB挖掘;股票預(yù)警

      1.引言

      在證行業(yè)內(nèi),客戶是證券公司的最重要的資產(chǎn),直接關(guān)系到公司核心業(yè)績的好壞。市場(chǎng)競爭的日益激烈,使得證券公司對(duì)客戶的爭奪加劇。一些證券公司采取以低于成本的證券交易傭金水平、“零傭金”等方式招攬客戶,但是仍然收效甚微。其根本原因在于忽視客戶的實(shí)際利益需求。證公司要更加注意練內(nèi)功,增加服務(wù)的“含金量”,利用信息化時(shí)代的技術(shù)條件,適時(shí)建立一種個(gè)性化服務(wù),才能夠贏得客戶的信賴,實(shí)現(xiàn)證公司和股民的共贏。

      目前每一家證券公司都開通了自己的門戶網(wǎng)站,實(shí)時(shí)股評(píng)、盤后解讀、各種深度分析、個(gè)股資料、研究報(bào)告、消息等紛繁復(fù)雜。每個(gè)投資者每天都要面對(duì)成千上萬條的真假資訊,查詢時(shí)耗時(shí)費(fèi)力。因此使他們便捷地獲取真正關(guān)心的信息就顯得尤為重要。一個(gè)好的證券公司,并不是要將所有能獲取的信息全部展現(xiàn)給客戶,而是要求首先建立結(jié)構(gòu)化的信息采集和管理系統(tǒng),然后根據(jù)客戶的需要提供它們所要求的內(nèi)容。而這就是本文要探討的股票信息預(yù)警系統(tǒng)。

      2.基于網(wǎng)絡(luò)爬蟲的股票預(yù)警系統(tǒng)分析

      面對(duì)大量的實(shí)時(shí)證信息,只有使用自動(dòng)化的手段來有的放矢的獲取,才能滿足用戶的要求。我們結(jié)合搜索引擎所使用的網(wǎng)絡(luò)爬蟲技術(shù),來實(shí)現(xiàn)股票信息預(yù)警系統(tǒng)。網(wǎng)絡(luò)爬蟲是一種按照一定的規(guī)則自動(dòng)提取互聯(lián)網(wǎng)信息的程序,它是搜索引擎的重要組成部分,把分散在互聯(lián)網(wǎng)上的離散的信息收集起來,以便人們方便快捷的搜索到有用的信息。從而明顯地降低了人們獲取信息的難度。

      本文使用由HtmlParser和 HttpClient兩個(gè)開源工具構(gòu)建的一個(gè)簡易網(wǎng)絡(luò)爬蟲來實(shí)現(xiàn)股票信息預(yù)警。HttpClient提供了便利的 HTTP 協(xié)議訪問,使得我們可以很容易的得到某個(gè)網(wǎng)頁的源碼并保存在本地。HtmlParser對(duì)HTML代碼進(jìn)行處理,將抓取下來的網(wǎng)頁信息進(jìn)行再加工,分析,抽取有用的信息,并通過短信平臺(tái)將分析加工后的數(shù)據(jù)發(fā)送給用戶。

      使用上述方法完成股票信息預(yù)警系統(tǒng)的設(shè)計(jì),實(shí)現(xiàn)股票價(jià)格到價(jià)提醒和股票公告信息的推送的功能。

      3.股票信息預(yù)警系統(tǒng)設(shè)計(jì)

      3.1 工作原理

      預(yù)警系統(tǒng)由系統(tǒng)短信接收模塊借助短信平臺(tái)的WEB.SERVICE接口獲取用戶設(shè)置的股票預(yù)警和公告推送代碼信息,將這些信息送入股票預(yù)警系統(tǒng)里進(jìn)行處理,并寫入數(shù)據(jù)庫。然后利用網(wǎng)絡(luò)爬蟲對(duì)指定數(shù)據(jù)源進(jìn)行實(shí)時(shí)抓取,獲取到的網(wǎng)頁股票數(shù)據(jù)返回給系統(tǒng)進(jìn)行預(yù)警處理,抓取到的公告信息由網(wǎng)絡(luò)爬蟲提取處理后返回給系統(tǒng)分析,通過短信發(fā)送模塊回復(fù)給用戶,同時(shí)回寫數(shù)據(jù)庫。

      根據(jù)客戶實(shí)時(shí)提交的預(yù)警股票代碼,拼接鏈接地址,放進(jìn)待抓取隊(duì)列,并根據(jù)股票代碼建立一張動(dòng)態(tài)更新股價(jià)的哈希表,然后股票工作線程按一定的時(shí)間間隔從待爬行隊(duì)列中取出鏈接發(fā)送http請(qǐng)求獲取源數(shù)據(jù),分析數(shù)據(jù),把提取出來的價(jià)格放入哈希表中。此時(shí)程序不停的比較動(dòng)態(tài)更新股價(jià)的哈希表與用戶設(shè)定的預(yù)警價(jià)格表,如果符合預(yù)警條件,則退出進(jìn)入下一個(gè)環(huán)節(jié)短信發(fā)送,如果不符合條件,則繼續(xù)比對(duì),直到滿足系統(tǒng)停止條件為止。

      3.2 基本工作流程

      4.股票信息預(yù)警系統(tǒng)的實(shí)現(xiàn)

      本文采用模塊式的實(shí)現(xiàn)方法,將預(yù)警系統(tǒng)分為若干部分,限于篇幅,這里主要介紹股票預(yù)警、股票信息獲取、短信收發(fā)這幾個(gè)模塊。

      4.1 股票預(yù)警設(shè)計(jì)思路

      實(shí)現(xiàn)股票價(jià)格的預(yù)警,需要兩個(gè)要素,其一是用戶設(shè)定的預(yù)警價(jià)格,其二是不斷變化中的實(shí)時(shí)價(jià)格。有了這兩個(gè)價(jià)格就可以通過比較直到滿足條件(突破上下限價(jià)格)完成預(yù)警。這些價(jià)格信息存儲(chǔ)在數(shù)據(jù)列中,所以實(shí)現(xiàn)時(shí)選擇使用Hashtable存儲(chǔ)動(dòng)態(tài)更新的實(shí)時(shí)股票價(jià)格表stockprice,List存儲(chǔ)用戶設(shè)定的預(yù)警價(jià)格表CurrentAletStocks。

      首先將預(yù)警股票代碼寫入stockprice和CurrentAletStocks中,stockprice獲取股票實(shí)時(shí)價(jià)格,將此價(jià)格與CurrentAletStocks正在預(yù)警的股票的上下限進(jìn)行比較,如果在上下限之間,那么只更新stockprice中的當(dāng)前價(jià)格;如果突破了上限或者下限價(jià)格,更新當(dāng)前價(jià)格,并將突破當(dāng)前價(jià)格內(nèi)容信息送入短信收發(fā)模塊發(fā)送給預(yù)警的用戶。

      4.2 股票信息獲取

      實(shí)時(shí)股票信息的來源主要通過調(diào)用股票公用數(shù)據(jù)接口來實(shí)現(xiàn),本系統(tǒng)中使用了新浪股票公用數(shù)據(jù)源。從數(shù)據(jù)源獲取到的實(shí)時(shí)股票信息,我們還需要對(duì)它進(jìn)行解碼。系統(tǒng)解碼后的字符串信息有很多,如(股票名稱、行情時(shí)間、最新價(jià)、昨收盤、今開盤、漲跌額、最低、最高、漲跌幅、成交量、成交額、競買價(jià)、競賣價(jià)、委比、買一-買五、賣一-賣五),而我們需要的只是現(xiàn)價(jià)和股票名稱,所以還要通過自定義的方法Parse對(duì)字符串進(jìn)行格式匹配處理從而得到我們想要的數(shù)據(jù)。

      我們以新浪股票公用數(shù)據(jù)源獲取股票信息為例:

      ⑴構(gòu)建股票代碼信息

      例如:600250 Sh600250 如果是60開頭為滬市、如果是30或者00開頭為深市

      ⑵拼接爬取URL地址

      例如:URL:http:////list=sh600250

      ⑶通過HttpClient發(fā)送get請(qǐng)求,并對(duì)獲取的信息進(jìn)行解碼

      ⑷對(duì)解碼后的字符串進(jìn)行格式匹配處理(即方法Parse)

      ⑸返回所需要的正確格式

      4.3 SMS短信收發(fā)模塊

      與用戶的交互需要短信的收發(fā),系統(tǒng)高峰時(shí)需要幾十甚至幾百條的同時(shí)收發(fā)。因此選擇了目前SP(服務(wù)提供商)普遍使用的短信平臺(tái)(短信網(wǎng)關(guān))。

      短信平臺(tái)是基于中國移動(dòng)、中國聯(lián)通、中國電信提供的短信端口與互聯(lián)網(wǎng)連接的基礎(chǔ)上,實(shí)現(xiàn)與用戶指定號(hào)碼進(jìn)行短信批量發(fā)送和自定義發(fā)送功能的綜合平臺(tái)。它分為軟件單機(jī)版(帶客戶端)CS 結(jié)構(gòu)和網(wǎng)絡(luò)共享版BS 結(jié)構(gòu)。本系統(tǒng)采用了網(wǎng)絡(luò)BS結(jié)構(gòu)的短信平臺(tái),借助webservice接口實(shí)現(xiàn)與程序的對(duì)接。

      4.3.1 發(fā)送短信

      訪問web地址http:///smssendwebservice/

      Service.asmx。調(diào)用.net中Web Services協(xié)議棧里的soap協(xié)議使用Smssend 方法:

      用戶名:<UsrId>string</UsrId>

      密碼:<UserKey>string</UserKey>

      目標(biāo)手機(jī)號(hào)碼:<PhoneNumber>string</PhoneNumber>

      短信內(nèi)容:<SmsContent>string</SmsContent>

      4.3.2 接收短信

      調(diào)用QuerymoSms方法查詢用戶上行短信,訪問地址:http:///httpinterface/QueryMoSms.asp?UserId=&userkey=

      UserId為短信平臺(tái)提供給你的賬號(hào)

      userkey為短信平臺(tái)提供給你的賬號(hào)密碼

      5.結(jié)束語

      本文使用HtmlParser和 HttpClient構(gòu)建的一個(gè)簡易網(wǎng)絡(luò)爬蟲,通過詳細(xì)的系統(tǒng)設(shè)計(jì)分析,完成股票信息獲取、股票價(jià)格預(yù)警、公告提醒、短信平臺(tái)收發(fā)等模塊的開發(fā),實(shí)現(xiàn)股票信息預(yù)警系統(tǒng)從而更好服務(wù)用戶。

      參考文獻(xiàn)

      [1]張亮.基于HTMLParser和HttpClient的網(wǎng)絡(luò)爬蟲原理與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2011,20:94-103.

      網(wǎng)絡(luò)爬蟲范文第4篇

      關(guān)鍵詞:網(wǎng)絡(luò),主題爬蟲,搜索引擎,軍事教育主題爬蟲

       

      l1引言

      當(dāng)今,隨著Intemet在國內(nèi)的迅猛發(fā)展,軍隊(duì)正在向現(xiàn)代化建軍目標(biāo)發(fā)展,為了使軍隊(duì)更快的向信息化,數(shù)字化方向發(fā)展,軍隊(duì)都在著手建設(shè)自己的信息網(wǎng),網(wǎng)絡(luò)信息資源也爆炸般的增長,在軍隊(duì)內(nèi)的信息服務(wù)器上,同樣能夠獲取許多有用的資源。如果沒有一個(gè)好的搜索引擎,查詢起來困難就可想而知。現(xiàn)在www網(wǎng)上基本都是一些商業(yè)性的探索引擎,這些引擎深度和廣度都很大,有些甚至是整個(gè)環(huán)球網(wǎng)進(jìn)行檢索。,搜索引擎。而軍隊(duì)只需要搜索其內(nèi)部網(wǎng)絡(luò)即可。因此在軍隊(duì)網(wǎng)中安置一個(gè)針對(duì)軍隊(duì)信息資源進(jìn)行搜索的爬蟲十分必要。

      l2軍事教育主題爬蟲的爬行策略

      搜索引擎中最關(guān)鍵的部分是網(wǎng)絡(luò)爬蟲,它的性能好壞直接影響著搜索引擎的整體性能和處理速度。傳統(tǒng)的網(wǎng)絡(luò)爬蟲是按照預(yù)先設(shè)定的廣度優(yōu)先策略、深度優(yōu)先策略或這兩種策略相結(jié)合的方式爬行網(wǎng)頁[ 1 ] 。網(wǎng)絡(luò)爬蟲的搜索策略與搜索引擎的性質(zhì)和任務(wù)密切相關(guān)。決定網(wǎng)絡(luò)爬蟲搜索策略的關(guān)鍵是如何將不相關(guān)的網(wǎng)頁快速地過濾并刪除掉,因?yàn)榫W(wǎng)頁過濾的速度和準(zhǔn)確性將會(huì)直接影響網(wǎng)絡(luò)爬蟲的性能。以何種策略訪問Web,成為近年來主題搜索引擎網(wǎng)絡(luò)爬蟲研究的焦點(diǎn)之一。軍事教育主題爬蟲是按照最佳優(yōu)先的爬行策略爬行網(wǎng)頁即軍事教育主題爬行時(shí)按照主題相關(guān)度優(yōu)先的爬行策略爬行網(wǎng)頁。爬蟲從網(wǎng)絡(luò)上抓取到的新網(wǎng)頁在爬行之前都要進(jìn)行主題相關(guān)度分析,與初始種子網(wǎng)頁相關(guān)度最高的網(wǎng)頁被優(yōu)先爬行,而與初始種子網(wǎng)頁不相關(guān)或相關(guān)度不大的網(wǎng)頁則被拋棄。因此與傳統(tǒng)網(wǎng)絡(luò)爬蟲相比,軍事教育主題爬蟲的工作量大大減少、爬行的準(zhǔn)確度大大提高。

      l3軍事教育主題爬蟲的系統(tǒng)實(shí)現(xiàn)

      3.1 設(shè)計(jì)思路與總體柜架

      從設(shè)計(jì)思路上,構(gòu)造Spider有兩種比較常用的方法。第一種是把Spider設(shè)計(jì)成一個(gè)遞歸的程序,第二種是編寫一個(gè)非遞歸的Spider程序,程序維護(hù)一個(gè)要訪問的網(wǎng)頁列表,考慮到Java對(duì)數(shù)組、隊(duì)列的包支持較為豐富,實(shí)現(xiàn)相對(duì)容易,本程序使用了第二種設(shè)計(jì)思路。

      程序中總共維護(hù)了四個(gè)不同的隊(duì)列,它們的總結(jié)如下。每一個(gè)這樣的隊(duì)列保存著同一處理狀態(tài)的URL。

      等待隊(duì)列 當(dāng)Spider程序開始處理URL時(shí),它們被傳送到這一隊(duì)列。重要的是同一個(gè)URL不能被多次處理,因?yàn)檫@樣是浪費(fèi)的。當(dāng)一個(gè)URL被處理過后,它被移送到或者是錯(cuò)誤隊(duì)列或者是完成隊(duì)列。,搜索引擎。,搜索引擎。

      運(yùn)行隊(duì)列 當(dāng)前正在處理的URL隊(duì)列。

      錯(cuò)誤隊(duì)列 如果在下載當(dāng)前網(wǎng)頁時(shí)發(fā)生錯(cuò)誤,它的URL將被加入到錯(cuò)誤隊(duì)列。該URL到達(dá)這一隊(duì)列后將不再移入其它隊(duì)列。,搜索引擎。一旦網(wǎng)頁移入錯(cuò)誤隊(duì)列,Spider程序?qū)⒉粫?huì)再對(duì)它作進(jìn)一步處理。

      完成隊(duì)列 如果在下載網(wǎng)頁時(shí)沒有發(fā)生錯(cuò)誤,該URL將被加入到完成隊(duì)列。該URL到達(dá)這一隊(duì)列后將不再移入其他隊(duì)列。

      明顯,每個(gè)得到的URL都只能存在于一個(gè)隊(duì)列中。其狀態(tài)流程圖如下(圖1):

      評(píng)定分?jǐn)?shù)計(jì)算公式采用信息檢索中常用的詞條權(quán)值計(jì)算方法為

      TF-IDF 函數(shù)

      Wi,j=Avg(TFi)*(1/(log(nDoc/ni)+1/log(nDoc-1)))

      Avg(TFi):對(duì)詞i取其在各文檔中的TF值進(jìn)行平均;

      nDoc:文檔數(shù)目;

      ni:出現(xiàn)詞i的文檔個(gè)數(shù);

      3.2程序結(jié)構(gòu)及具體實(shí)現(xiàn)

      網(wǎng)絡(luò)爬蟲種類很多,如有基于全文搜索的網(wǎng)絡(luò)爬蟲[2],聚類網(wǎng)絡(luò)爬蟲,主題網(wǎng)絡(luò)爬蟲,基于本體的網(wǎng)絡(luò)爬蟲等。在引入BOT包的基礎(chǔ)上,實(shí)現(xiàn)了以并發(fā)進(jìn)程方式對(duì)指定站點(diǎn)內(nèi)部網(wǎng)頁數(shù)據(jù)的訪問和基于隊(duì)列的處理,將抓取到的網(wǎng)頁數(shù)據(jù)存儲(chǔ)在本地?cái)?shù)據(jù)庫中。程序由四個(gè)文件組成:CheckLinks.java; HTMLParse.java; ISpiderReportable.java;Spider.java,程序工程報(bào)告如圖2:

      圖2

      用TF-IDF 函數(shù)算出各個(gè)詞語的權(quán)值,最終得到全部詞的權(quán)值wordWeightOfAllDocument

      public class segmenter {

      public TreeMap zhwords;//用Treemap形式定義,帶標(biāo)簽,方便對(duì)應(yīng)查找

      //下面定義的是一些統(tǒng)計(jì)詞項(xiàng)與詞頻的鏈表

      public ArrayList wordSum;

      public ArrayList wordCount;

      public ArrayList wordAll;

      public ArrayList wordCountAll;

      //根據(jù)選取網(wǎng)頁的編碼類型,選擇不同的詞庫文件。

      String newword = null;

      try {

      InputStream worddata = null;

      if(charform == SIMP) {

      worddata= getClass().getResourceAsStream('simplexu8.txt');

      } else if(charform == TRAD) {

      worddata= getClass().getResourceAsStream('tradlexu8.txt');

      } else if(charform == BOTH) {

      worddata= getClass().getResourceAsStream('bothlexu8.txt');

      }

      //wordSum ; wordCount; wordAll; wordCountAll;wordCountMax;這些鏈表都是為了分詞后統(tǒng)計(jì)出每個(gè)詞的tf值和IDF值,最后根據(jù)公式算出每個(gè)詞語的權(quán)值!

      //這個(gè)是tf值的計(jì)算并記錄文件

      public ArrayList getTfValue(String args){

      int tmpIndex;

      BufferedWriter fileOut;

      ArrayList tmpArrayList = newArrayList(3);

      File tmpTfFilePath=newFile('tf');

      tmpTfFilePath.mkdir();

      try{

      fileOut=newBufferedWriter ( new FileWriter (args+'.tf'));

      for(int k =0;k<wordSum.size();k++){

      tmpIndex=k;

      double tmp =(double)(Integer)wordCount.get(tmpIndex)).intValue()/(double) wordCountMax;

      Double dTmp = newDouble(tmp); tmpArrayList.add(dTmp/*(Object)tmp*/);

      //這個(gè)是IDF值的計(jì)算

      for(int idfi=0;idfi<wordOfAllDocument.size();idfi++)

      {

      int ni=0;//how many document contains a word

      String tmpString=(String)wordOfAllDocument.get(idfi);

      for(int idfj=0; idfj<nDoc; idfj++)

      {

      if(((ArrayList)wordOfOneDocument.get(idfj)).contains(tmpString))

      ni++;

      }

      Double dTmpdouble = newDouble(1/(Math.log(nDoc/ni)+1/Math.log(nDoc-1)));

      wordIdfValueOfAllDocument.add(/*1/(Math.log(nDoc/ni)+1/Math.log(nDoc-1))*/dTmpdouble);

      //IDF 采用倒數(shù),表明在專題訓(xùn)練文檔中在越多文檔中出現(xiàn),其越重要。

      //最后利用公式算出該詞在訓(xùn)練主題中的權(quán)重 W=Avg(tf)*IDF

      for(int tfi=0;tfi<wordOfAllDocument.size();tfi++){

      inttmpIndex=-1;

      inttni=0;

      doubletfall=0.0;

      StringtmpString=(String)wordOfAllDocument.get(tfi);

      for(inttfj=0; tfj<nDoc; tfj++){

      if((tmpIndex=((ArrayList)wordOfOneDocument.get(tfj)).indexOf(tmpString))!=-1){

      tni++; tfall=tfall+((Double)(((ArrayList)wordTfValueOfOneDocument.get(tfj)).get(tmpIndex))).doubleValue();

      }

      }

      Double dTmpdouble = newDouble(tfall/tni);

      Double dTmpdoubleElse = newDouble((tfall/tni)*(((Double)wordIdfValueOfAlDocument

      -.get(tfi)).doubleValue()));

      wordTfValueOfAllDocument.add(dTmpdouble); wordWeightOfAllDocument.add(dTmpdoubleElse);

      }

      實(shí)現(xiàn)的流程如下,首先,CheckLinks得到一個(gè)起始的URL,在CheckLinks.run()中,新建Spider實(shí)例,把起始URL加入到等待隊(duì)列中,并通過setKeyWord()方法設(shè)置關(guān)鍵詞,setCheckRobots()、setCheckMetaTag()配置選項(xiàng),程序進(jìn)入正常工作。

      Spider通過getWorkloadWaiting()方法得到等待隊(duì)列中的URL,調(diào)用processURL()方法對(duì)取出的URL進(jìn)行處理,對(duì)此,processURL()方法內(nèi)以URL為地址建立鏈接,取回對(duì)象通過parse.parse()方法對(duì)HTML進(jìn)行解釋,主要是從得到的HTML中獲取新的URL并添加到等待隊(duì)列中,及對(duì)主題字的匹配。經(jīng)過parse返回,則從等待隊(duì)列中移走處理的URL,如果沒有錯(cuò)誤,把它添加到完成隊(duì)列中,否則添加到錯(cuò)誤隊(duì)列中,程序又去等待隊(duì)列中取出URL,進(jìn)行同樣的處理流程,循環(huán)一直到等待隊(duì)列為空。

      3.3開發(fā)環(huán)境

      實(shí)驗(yàn)條件:搜索深度= 2 (設(shè)的較小,為了防止搜索規(guī)模過大) ,線程數(shù)= 100 (要求在網(wǎng)絡(luò)環(huán)境較好的情況下) ,起始種子= 10 (都是經(jīng)過人工選擇的較好的種子) ,閾值r = 0. 6 ,中文分詞主要以中科院計(jì)算所免費(fèi)版的分詞工具(C 語言開發(fā)) 為基礎(chǔ)。機(jī)器配置: Intel(R)Core™2 CPU T5500 @1.66Ghz,內(nèi)存2048 MB。試驗(yàn)結(jié)果表明軍事教育主題爬蟲抓取網(wǎng)頁的準(zhǔn)確度及準(zhǔn)確率都比普通爬蟲的高。,搜索引擎。

      3.4 實(shí)驗(yàn)總結(jié)及系統(tǒng)存在的問題

      爬行速度太慢,特別是對(duì)超鏈接較多的頁面;頁面內(nèi)容的多少對(duì)評(píng)分有一定影響,雖然不大,但仍需考慮;若能在網(wǎng)頁架構(gòu)分析上添加一定的過濾,抓取核心內(nèi)容,相信對(duì)抓取質(zhì)量會(huì)有更大的提高,這方面也待改善。

      l4結(jié)束語

      本文通過設(shè)計(jì)一個(gè)軍事教育主題爬蟲從網(wǎng)絡(luò)上收集有關(guān)理財(cái)網(wǎng)頁(代替軍隊(duì)的教育網(wǎng)頁),以解決本實(shí)驗(yàn)室面向軍事教育主題的個(gè)性化搜索引擎的資源問題。,搜索引擎。從實(shí)驗(yàn)結(jié)果來看爬蟲達(dá)到了我們初步的預(yù)定目標(biāo),下一步我們將不斷對(duì)其進(jìn)行完善以進(jìn)一步提高其搜索精度及搜索速度。

      參考文獻(xiàn)

      [1]周立柱,林玲1聚焦爬蟲技術(shù)研究綜述1計(jì)算機(jī)應(yīng)用1第25卷第9期2005年9月:1966

      [2]徐遠(yuǎn)超,劉江華,劉麗珍等.基于Web 的網(wǎng)絡(luò)爬蟲的設(shè)計(jì)與實(shí)現(xiàn).微計(jì)算機(jī)信息.2007,23(7):119-121

      [2[Programming a Spider in Java,Jeff Heaton

      Biography:JinPeng(1982-),male, qingdao,China University Of Petroleum, research interests are in areas of computernetwork and. Search Engine

      網(wǎng)絡(luò)爬蟲范文第5篇

      【關(guān)鍵詞】網(wǎng)絡(luò)爬蟲;社交網(wǎng)絡(luò);web信息抽取;AJAX

      1.引言

      隨著信息技術(shù)的發(fā)展,各種新聞、論壇和博客網(wǎng)站為人們提供了發(fā)表評(píng)論的平臺(tái),對(duì)相關(guān)部門掌握輿情的走向起著重要作用,使得輿情研究變得有價(jià)值。由于Ajax技術(shù)的廣泛使用,用于信息搜索的常規(guī)網(wǎng)絡(luò)爬蟲技術(shù)面臨嚴(yán)重挑戰(zhàn),出現(xiàn)了針對(duì)Ajax技術(shù)的爬蟲。2007年,瑞士蘇黎世聯(lián)邦理工學(xué)院的Gianni Frey[1,2]通過解析網(wǎng)頁中的腳本,實(shí)現(xiàn)了Ajax動(dòng)態(tài)信息的采集;隨后Cristian[3]等人提出了基于腳本函數(shù)以及參數(shù)的熱點(diǎn)檢測(cè)機(jī)制,減少了重復(fù)信息的采集;2008年,荷蘭理工大學(xué)的Ali[4]等人利用瀏覽器接口模擬用戶對(duì)頁面元素操作獲取動(dòng)態(tài)信息。在我國,2007年浙江大學(xué)的羅兵[5]在普通爬蟲的基礎(chǔ)上增加了JS(JavaScript)解析和DOM(Document Object Model)操作模塊,實(shí)現(xiàn)了對(duì)JavaScript代碼的解析和JavaScript代碼中相關(guān)DOM操作的支持,完成了對(duì)Ajax加載內(nèi)容的分析;2009年,中國科學(xué)技術(shù)大學(xué)的曾偉輝[6]采用改進(jìn)動(dòng)態(tài)腳本分析方法,實(shí)現(xiàn)了基于對(duì)象的程序切片算法達(dá)到抓取Ajax站點(diǎn)URL的目的;同年,袁小節(jié)[7]以采集新聞主題信息為例,采用基于協(xié)議驅(qū)動(dòng)采集和事件驅(qū)動(dòng)采集相結(jié)合的方法完成了聚焦信息的采集。2010年,夏天[8]對(duì)Ajax站點(diǎn)數(shù)據(jù)采集進(jìn)行了總結(jié),分析了采集Ajax網(wǎng)頁動(dòng)態(tài)信息的研究重點(diǎn)以及發(fā)展趨勢(shì)。本文在分析研究了現(xiàn)有爬蟲技術(shù)后,針對(duì)微博類網(wǎng)站設(shè)計(jì)了支持Ajax技術(shù)的爬蟲,該爬蟲將爬取分為用戶爬取和內(nèi)容爬取兩部分,采用協(xié)議驅(qū)動(dòng)和事件驅(qū)動(dòng)結(jié)合的采集策略以及基于模板的抽取方法,實(shí)現(xiàn)了對(duì)微博內(nèi)容的抽取和保存,提高了信息采集的覆蓋率。

      2.面向微博的Web爬蟲設(shè)計(jì)與實(shí)現(xiàn)

      微博在網(wǎng)絡(luò)事件中對(duì)輿論的導(dǎo)向起到重要作用[9]。網(wǎng)絡(luò)輿情具有源數(shù)據(jù)針對(duì)性、時(shí)效性、后續(xù)更新連續(xù)性等特點(diǎn)。本文設(shè)計(jì)時(shí),將要爬取的空間限制在微博網(wǎng)站中,考慮微博的時(shí)間、內(nèi)容、評(píng)論和轉(zhuǎn)發(fā)數(shù)等,以最大限度的信息采集量為目標(biāo)進(jìn)行設(shè)計(jì),保證獲取新增評(píng)論內(nèi)容。

      2.1 面向微博的網(wǎng)絡(luò)爬蟲框架

      微博網(wǎng)站的更新是通過用戶在自己的微博上發(fā)表文章來實(shí)現(xiàn)。由于沒有包含所有文章的列表,在設(shè)計(jì)該類爬蟲時(shí),必須以用戶為單位,先找到用戶,再進(jìn)入其微博主頁獲取微博的內(nèi)容、時(shí)間、評(píng)論和轉(zhuǎn)發(fā)數(shù)等。

      根據(jù)以上思路,將基于微博的網(wǎng)絡(luò)爬蟲程序分為兩個(gè)模塊:獲取用戶信息模塊和獲取微博內(nèi)容模塊,基本框架如圖2-1所示。

      圖2-1 基于微博的網(wǎng)絡(luò)爬蟲框架

      在獲取用戶信息模塊中,由于信息數(shù)量過大,嚴(yán)重影響信息獲取的速度,而實(shí)際運(yùn)用中,大多信息是無用信息。因此,根據(jù)信息的重要程度,將用戶分為普通用戶和重點(diǎn)用戶。在獲取用戶信息時(shí),先從重點(diǎn)用戶出發(fā),盡可能多的獲取用戶列表;更新用戶列表時(shí),以最近一次的用戶列表作為本次爬取的初始化用戶。為保證用戶獲取時(shí)分布均勻,在得到用戶列表后,根據(jù)已獲取的URL結(jié)構(gòu),使用隨機(jī)函數(shù)產(chǎn)生用戶ID, 構(gòu)造出微博的訪問URL。

      在獲取微博內(nèi)容模塊中,采用多線程爬取策略,每個(gè)線程負(fù)責(zé)一個(gè)用戶的URL爬取,直至隊(duì)列中的所有URL都被爬取過或者遇到終止條件結(jié)束。當(dāng)爬蟲進(jìn)入到用戶微博后,首先判斷該用戶是否已經(jīng)被爬取過,如果己經(jīng)爬取過,則轉(zhuǎn)到該用戶的微博頁面爬取最新的微博;如果尚未被爬取,則從微博主頁開始爬取,依次獲取所有文章信息,并對(duì)用戶狀態(tài)進(jìn)行更新。

      2.2 支持Ajax的爬蟲實(shí)現(xiàn)

      目前廣泛使用的Ajax技術(shù)使用局部刷新和異步讀取的方法,使得服務(wù)器不需要存儲(chǔ)大量靜態(tài)網(wǎng)頁數(shù)據(jù),節(jié)約了存儲(chǔ)空間,提升了用戶的使用體驗(yàn)[7]。但是,這種技術(shù)也導(dǎo)致了普通爬蟲無法得到完整的網(wǎng)頁信息,如異步請(qǐng)求動(dòng)態(tài)信息、網(wǎng)頁中的觸發(fā)事件等等。

      使用了Ajax技術(shù)的網(wǎng)頁,通常是從數(shù)據(jù)庫中提取相應(yīng)的數(shù)據(jù)填充到指定的模板,并將其顯示在網(wǎng)頁上,如新浪微博的評(píng)論信息頁面,評(píng)論的內(nèi)容是動(dòng)態(tài)加載的,當(dāng)評(píng)論內(nèi)容被分成多頁顯示時(shí),不同的評(píng)論內(nèi)容頁共用同一個(gè)URL。由于這些評(píng)論網(wǎng)頁的結(jié)構(gòu)十分相似,且在每一個(gè)動(dòng)態(tài)頁面中都包含多個(gè)觸發(fā)元素,若要爬取到完整的評(píng)論信息,就需要用戶對(duì)這些元素進(jìn)行操作。

      基于Ajax技術(shù)的微博網(wǎng)頁,其首頁的用戶信息、用戶微博的各個(gè)鏈接、微博內(nèi)容都能在HTML源文件中查看到。針對(duì)這一特點(diǎn),本研究采用協(xié)議驅(qū)動(dòng)的方法,采集用戶信息;采用事件驅(qū)動(dòng)的方法,采集微博評(píng)論信息。

      2.2.1 數(shù)據(jù)預(yù)處理

      預(yù)處理階段的任務(wù)是通過對(duì)樣本網(wǎng)頁進(jìn)行分析,提出采集規(guī)則,提高對(duì)評(píng)論信息的采集效率。在運(yùn)行時(shí),使用Ajax狀態(tài)表示一個(gè)動(dòng)態(tài)網(wǎng)頁的信息,采用全探測(cè)算法[6]查找頁面中的有效觸發(fā)元素,算法如下:

      初始狀態(tài)

      構(gòu)建關(guān)于狀態(tài)的DOM Tree

      儲(chǔ)存狀態(tài)標(biāo)識(shí)至標(biāo)識(shí)庫,狀態(tài)編號(hào)及內(nèi)容至內(nèi)容庫

      If 第一次處理 then

      遍歷DOM Tree

      獲取觸發(fā)事件列表

      Else

      查詢觸發(fā)事件列表

      Endif

      If 有未處理事件 then

      獲取事件狀態(tài)

      添加新狀態(tài)至相應(yīng)庫

      Else

      結(jié)束

      endif

      上述算法中,在判斷Ajax狀態(tài)是否有效時(shí),采用樹匹配算法[10],即遞歸比較兩棵樹的第一層子樹,求最大的匹配節(jié)點(diǎn)對(duì)。若兩棵樹的根節(jié)點(diǎn)不同,則這兩棵樹的最大匹配為零,不再比較子樹,否則順序比較每個(gè)子節(jié)點(diǎn),最后得到兩棵樹的最大匹配節(jié)點(diǎn)數(shù)。

      對(duì)于DOM Tree為T的HTML文檔,假設(shè)其每個(gè)結(jié)點(diǎn)標(biāo)記對(duì)應(yīng)一個(gè)HTML標(biāo)簽,則任意兩棵樹的相似度可按如下公式計(jì)算:

      相似度 = 最大匹配節(jié)點(diǎn)數(shù) / 平均節(jié)點(diǎn)數(shù)

      兩棵樹的最大匹配節(jié)點(diǎn)樹越大,則兩棵樹越相似。在判斷時(shí),若兩棵樹的DOM結(jié)構(gòu)相似度大于90%,則需要重新遍歷并比較兩棵樹中各個(gè)節(jié)點(diǎn)的文本信息,若發(fā)生變化的節(jié)點(diǎn)數(shù)小于節(jié)點(diǎn)總數(shù)的15%,則認(rèn)為新得到的Ajax狀態(tài)是重復(fù)的,該狀態(tài)無效,否則,新得到的Ajax狀態(tài)是有效的。

      2.2.2 信息采集

      為了能夠快速地采集主題信息,采用協(xié)議驅(qū)動(dòng)和事件驅(qū)動(dòng)相結(jié)合的采集方式,并將采到的信息存入數(shù)據(jù)庫中。

      協(xié)議驅(qū)動(dòng)采集時(shí),根據(jù)HTTP協(xié)議獲取網(wǎng)頁,并對(duì)網(wǎng)頁中的信息進(jìn)行處理,提取網(wǎng)頁中的鏈接。使用WinInet(Windows Internet)庫提供的方法,根據(jù)給定的URL快速獲得網(wǎng)頁的HTML源文件,使用正則表達(dá)式提取網(wǎng)頁中的超鏈接。

      事件驅(qū)動(dòng)采集時(shí),根據(jù)預(yù)處理模塊得到的采集規(guī)則,完成該模塊中地址隊(duì)列的動(dòng)態(tài)評(píng)論信息采集。

      事件驅(qū)動(dòng)采集流程如圖2-2所示。

      圖2-2 事件驅(qū)動(dòng)采集流程

      2.2.3 信息采集數(shù)據(jù)存儲(chǔ)

      在將Web信息存入數(shù)據(jù)庫前,必須對(duì)微博內(nèi)容、微博評(píng)論信息進(jìn)行格式化處理,以保證所抽取信息的一致性。鑒于模板匹配算法抽取精確、部署快速的特點(diǎn),本系統(tǒng)采用了模板匹配的方式進(jìn)行信息處理。操作時(shí),先對(duì)所采集到的網(wǎng)頁進(jìn)行分析,找出最佳匹配模板,使模板的數(shù)據(jù)信息與該模塊所對(duì)應(yīng)的數(shù)據(jù)庫字段相對(duì)應(yīng),再將數(shù)據(jù)保存至數(shù)據(jù)庫中。配置模板的流程如圖2-3所示。

      圖2-3 數(shù)據(jù)存儲(chǔ)流程

      3.實(shí)驗(yàn)結(jié)果及分析

      3.1 面向微博的網(wǎng)絡(luò)爬蟲框架

      本文以/1738289495為例,主要抽取微博內(nèi)容、時(shí)間、轉(zhuǎn)發(fā)數(shù)和評(píng)論數(shù)和評(píng)論內(nèi)容,原文和抽取結(jié)果如圖3-1、3-2所示。

      圖3-1 微博原文

      從圖中可以看出,通過結(jié)合協(xié)議驅(qū)動(dòng)采集和事件驅(qū)動(dòng)采集、模板匹配算法設(shè)計(jì)的網(wǎng)絡(luò)爬蟲,成功地抽取到了微博內(nèi)容,同時(shí)刪除了引用等其他無關(guān)信息。

      圖3-2 抽取結(jié)果

      3.2 數(shù)據(jù)比對(duì)與分析

      微博信息抽取的性能可以定義以下兩個(gè)衡量指標(biāo):微博主題內(nèi)容的正確提取率(IAR)、微博評(píng)論內(nèi)容的正確提取率(IDI)。

      (1)

      微博內(nèi)容總數(shù)是指某賬戶在某時(shí)刻登錄微博首頁所能查看到的所有微博主題內(nèi)容的總數(shù);抽取到的微博主題內(nèi)容總數(shù)是指爬蟲所抓取的正確的微博主題內(nèi)容總數(shù)。

      (2)

      微博評(píng)論總數(shù)是指所有微博主題內(nèi)容的評(píng)論數(shù)的總和;抽取的微博評(píng)論總數(shù)是爬蟲正確抽取的微博評(píng)論總數(shù)。

      為了對(duì)算法進(jìn)行性能分析比較,本實(shí)驗(yàn)使用同一賬號(hào)在同一時(shí)間登錄微博,以保證起始頁面相同。實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)有460條微博和31482條評(píng)論信息,分別使用本文爬蟲和BFS(Best First Search)算法爬取的信息量作比較,如表3-1所示。

      表3-1 信息爬取量對(duì)比表

      微博內(nèi)容總數(shù) 正確抓取微博內(nèi)容 IAR(%)

      BFS 460 46 10%

      本文爬蟲 460 424 92.17%

      微博評(píng)論總數(shù) 正確抓取

      評(píng)論數(shù) IDI(%)

      BFS 31482 0 0%

      本文爬蟲 31482 29543 93.84%

      表3-1的數(shù)據(jù)表明,本文設(shè)計(jì)的爬蟲能夠采集動(dòng)態(tài)信息,相對(duì)于普通的爬蟲提高了信息采集的覆蓋率。

      表3-2 觸發(fā)次數(shù)對(duì)比表

      評(píng)論

      頁數(shù) 未制定觸發(fā)約束(觸發(fā)次數(shù)) 有約束條件

      (觸發(fā)次數(shù))

      微博1 3 23 2

      微博2 7 67 6

      微博3 11 136 10

      微博4 17 167 16

      微博5 25 243 24

      另外,針對(duì)有效觸發(fā)元素的設(shè)計(jì),本文隨機(jī)選擇了5篇新浪微博的評(píng)論信息進(jìn)行抓取,以驗(yàn)證約束條件觸發(fā)的高效性,觸發(fā)次數(shù)對(duì)比如表3-2所示。

      表3-2的數(shù)據(jù)表明,本文通過對(duì)觸發(fā)設(shè)定約束條件,僅針對(duì)翻頁信息觸發(fā),減少了無效觸發(fā),提高了采集動(dòng)態(tài)信息的效率。

      4.結(jié)論

      Ajax技術(shù)通過異步方式向服務(wù)器發(fā)送并獲取數(shù)據(jù),減少了時(shí)間開銷,降低了數(shù)據(jù)流量,受到國內(nèi)外學(xué)術(shù)及商業(yè)領(lǐng)域的關(guān)注。本文通過分析Ajax技術(shù)在微博等評(píng)論頁面的應(yīng)用現(xiàn)狀,設(shè)計(jì)了針對(duì)微博類網(wǎng)站的支持Ajax技術(shù)的爬取策略。

      本文的主要貢獻(xiàn)如下:

      (1)通過分析協(xié)議驅(qū)動(dòng)采集和事件驅(qū)動(dòng)采集的特點(diǎn)以及適用領(lǐng)域,本文提出了根據(jù)微博信息的特點(diǎn),采用了協(xié)議驅(qū)動(dòng)采集和事件驅(qū)動(dòng)采集相結(jié)合的方法,保證了信息獲取的效率和完整性。

      (2)在分析現(xiàn)有的Ajax信息采集技術(shù)研究之上,本文提出了對(duì)Ajax網(wǎng)頁觸發(fā)元素設(shè)置約束條件,根據(jù)約束條件完成規(guī)約,對(duì)網(wǎng)頁中得翻頁元素進(jìn)行分類處理,為動(dòng)態(tài)信息的快速采集提供規(guī)則。實(shí)驗(yàn)結(jié)果表明該方法能顯著提高采集效率。

      然而,隨著網(wǎng)絡(luò)開發(fā)技術(shù)的發(fā)展,網(wǎng)頁的DOM Tree變得越來越復(fù)雜,利用網(wǎng)頁的DOM Tree進(jìn)行動(dòng)態(tài)信息的采集將面臨挑戰(zhàn),設(shè)計(jì)更加靈活的動(dòng)態(tài)信息采集方法成為下一步研究的重點(diǎn)。

      參考文獻(xiàn)

      [1]Gianni Frey.Indexing AJAX Web Application.30.11.2007.

      [2]Cristian Duda, Cianni Frey, Donald Kossmann.AJAX Search : Crawling, Indexing and Searching Web 2.0 Applications.ACM 2008 2008 VLDB Endowment:1440-1443.

      [3]Cristian Duda, Cianni Frey, Donald Kossmann.AJAX Crawl: Making AJAX Application Searchable.IEEE .DOI I 0.1109/ICDE.2009.90:78-89.

      [4]Ali Mesbah, Engin Bozdag, Arie van Deursen.Crawling AJAX by Inferring User Interface State Changes.IEEE.DOI 10.1109/ICWE.2008.24:122-134.

      [5]羅兵.支持AJAX的互聯(lián)網(wǎng)搜索引擎爬蟲設(shè)計(jì)與實(shí)現(xiàn)[D].浙江大學(xué),2007:41-54.

      [6]曾偉輝.支持AJAX的網(wǎng)絡(luò)爬蟲系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]中國科學(xué)技術(shù)大學(xué),2009:50-54.

      [7]袁小節(jié).基于協(xié)議驅(qū)動(dòng)與事件驅(qū)動(dòng)的綜合網(wǎng)絡(luò)爬蟲研究與實(shí)現(xiàn)[D].國防科學(xué)技術(shù)大學(xué)技研究生院工學(xué)碩士學(xué)位論文,2009:32-36.

      [8]夏天.Ajax站點(diǎn)數(shù)據(jù)采集研究綜述[J].情報(bào)分析與研究,2010:52-57.

      [9]樓玲娣,周小斌.網(wǎng)絡(luò)輿情的運(yùn)行狀態(tài)分析[J].特區(qū)實(shí)踐與理論,2009:22-25.

      [10]何昕,謝志鵬.基于簡單樹匹配算法的Web頁而結(jié)構(gòu)相似性度量[J].計(jì)算機(jī)研究與發(fā)展,2007:1-6.

      [11]C.Chang,M.Kayed,M.R.Girgis and K.F.Shaalan.A Survey of Web Information Extraction Systems[J].IEEE Transactions on Knowledge and Data Engineering, 2006,18(10):1411-1428.

      [12]Junfeng Wang,Chun Chen,Jian Pei.Can we learn a template-independent wrapper for news article extraction from a single training site[C].Proceedings of the 15th ACM SIGKDD international conference on Knowledge discovery and data mining,2009:1154-1163.

      [13]H Zhao,W Meng,C Yu.Mining templates from search result records of search engines[C].International Conference on Knowledge Discovery and Data Mining,2007:623-632.

      基金項(xiàng)目:湖南省教育廳科研項(xiàng)目(30972362);國家自然科學(xué)基金項(xiàng)目(30972362,31070568);湖南省自然科學(xué)基金重點(diǎn)項(xiàng)目(10JJ2020)。

      作者簡介:

      相關(guān)期刊更多

      網(wǎng)絡(luò)財(cái)富

      部級(jí)期刊 審核時(shí)間1個(gè)月內(nèi)

      國家海洋局

      網(wǎng)絡(luò)與信息

      省級(jí)期刊 審核時(shí)間1個(gè)月內(nèi)

      遼寧省發(fā)展和改革委員會(huì)

      衛(wèi)星與網(wǎng)絡(luò)

      部級(jí)期刊 審核時(shí)間1個(gè)月內(nèi)

      工業(yè)和信息化部

      中文字幕在线日亚洲9| 亚洲乱码中文字幕综合 | 亚洲国产日韩在线| 亚洲狠狠综合久久| 亚洲AV无码乱码在线观看裸奔| 国产成人亚洲综合| 久久久久亚洲av毛片大| 国产日产亚洲系列最新| 亚洲熟女乱综合一区二区| 亚洲精品一级无码中文字幕| 亚洲日韩在线中文字幕第一页| 精品国产日韩亚洲一区在线| www国产亚洲精品久久久日本| 蜜芽亚洲av无码一区二区三区 | 亚洲精品无码不卡在线播放| 亚洲人成网站在线在线观看| 亚洲日韩精品国产一区二区三区| 亚洲乱亚洲乱妇24p| 日韩欧美亚洲国产精品字幕久久久 | 亚洲另类激情专区小说图片| 国产亚洲自拍一区| 亚洲欧洲美洲无码精品VA | 亚洲欧美日韩中文无线码| 亚洲欧美国产国产综合一区| 亚洲.国产.欧美一区二区三区| mm1313亚洲国产精品无码试看| 一本久久综合亚洲鲁鲁五月天| 亚洲精品麻豆av| 中文字幕久久亚洲一区| 精品亚洲综合久久中文字幕| 亚洲国产精品自在线一区二区| 亚洲欧洲综合在线| 中文无码亚洲精品字幕| 亚洲av无码偷拍在线观看| 亚洲国产精品尤物YW在线观看| 亚洲色精品88色婷婷七月丁香| 亚洲欧洲日韩不卡| 亚洲一区中文字幕在线观看| 亚洲人成欧美中文字幕| 亚洲国产高清精品线久久| 亚洲精品无码午夜福利中文字幕|