• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      網(wǎng)頁爬蟲技術(shù)的關(guān)鍵技術(shù)研究探索

      2016-07-23 18:56劉壽臣
      電腦知識(shí)與技術(shù) 2016年17期
      關(guān)鍵詞:多線程

      劉壽臣

      摘要:互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,使得網(wǎng)絡(luò)上各種數(shù)據(jù)信息呈現(xiàn)出幾何增長的趨勢(shì),以往搜索數(shù)據(jù)的工具越來越跟不上時(shí)代的潮流,查找效率低、成本高的缺陷日益凸顯。爬蟲技術(shù)實(shí)現(xiàn)所用到的算法是搜索引擎的關(guān)鍵技術(shù), 算法性能的優(yōu)良決定著搜索引擎的搜索精度和搜索效率。對(duì)于互聯(lián)網(wǎng)中數(shù)據(jù)的數(shù)據(jù)量大、數(shù)據(jù)類型多、實(shí)時(shí)性要求高的特點(diǎn),對(duì)各種爬蟲算法的優(yōu)缺點(diǎn)進(jìn)行分析,該文設(shè)計(jì)使用多線程機(jī)制的爬蟲算法,可以提高網(wǎng)頁的查全率。

      關(guān)鍵詞:爬蟲技術(shù);網(wǎng)頁挖掘;多線程

      中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)17-0016-02

      1 引言

      現(xiàn)今,社會(huì)經(jīng)濟(jì)生活的各個(gè)方面變得越來越“互聯(lián)網(wǎng)化”,互聯(lián)網(wǎng)式經(jīng)濟(jì)貿(mào)易逐漸取代傳統(tǒng)的經(jīng)濟(jì)模式,互聯(lián)網(wǎng)金融市場(chǎng)的快速發(fā)展,在我國的經(jīng)濟(jì)結(jié)構(gòu)中形成了服務(wù)于互聯(lián)網(wǎng)金融的主流經(jīng)濟(jì)模式。致使各大商業(yè)銀行也更加積極地開創(chuàng)互聯(lián)網(wǎng)經(jīng)濟(jì)方面的業(yè)務(wù),也強(qiáng)化了實(shí)體經(jīng)濟(jì)的服務(wù)效率。

      “互聯(lián)網(wǎng)金融+”這個(gè)新興事物越來越多地融入我們的生活,改變了我們以往的生活方式。現(xiàn)在流行的打車軟件,以電子支付為交易方式,改變了傳統(tǒng)的支付方式;網(wǎng)絡(luò)銀行的快速發(fā)展為我們提供了新的理財(cái)方式;P2P信貸使得我們的消費(fèi)和貸款有了新的途徑;眾籌產(chǎn)業(yè)的發(fā)展讓每個(gè)人都可以參與到創(chuàng)新新模式中來,這些新的變化改變著我們的生活,使得我們生活增添了新的色彩,互聯(lián)網(wǎng)金融在未來會(huì)越來越成為主流。

      網(wǎng)絡(luò)技術(shù)的快速發(fā)展,使得網(wǎng)絡(luò)上各種重要的數(shù)據(jù)信息越來越多,互聯(lián)網(wǎng)金融領(lǐng)域的發(fā)展也更加依賴于網(wǎng)絡(luò)來獲取重要的數(shù)據(jù)信息,以供研究發(fā)展。在互聯(lián)網(wǎng)中,時(shí)時(shí)刻刻都有各式各樣的金融網(wǎng)站發(fā)布實(shí)時(shí)的數(shù)據(jù)信息,如股票的走勢(shì)、某個(gè)公司的運(yùn)營情況、某個(gè)專家對(duì)當(dāng)前經(jīng)濟(jì)形式的分析、在經(jīng)濟(jì)領(lǐng)域新產(chǎn)生了哪些技術(shù)等等。大型金融機(jī)構(gòu)或者理財(cái)?shù)膫€(gè)人都需要最前沿的工具來抓取這些必要的數(shù)據(jù)信息,以供研究。

      在互聯(lián)網(wǎng)金融領(lǐng)域,爬蟲程序開發(fā)所面臨的主要問題是采集性能和反封鎖。大多數(shù)情況下,采用并發(fā)程度高的線程搜索網(wǎng)頁數(shù)據(jù)是可行的,但是,前提是所訪問的網(wǎng)站沒有設(shè)置反爬蟲的程序,例如設(shè)置防火墻、填寫驗(yàn)證碼什么的。很多時(shí)候有價(jià)值的信息都不會(huì)輕易被獲取,因?yàn)榫W(wǎng)站可能會(huì)靠這些數(shù)據(jù)信息盈利,所以設(shè)置反爬蟲的措施,限制訪問的頻率,一旦IP地址被封掉,什么程序就都沒用了。所以,爬取數(shù)據(jù)的公司一般要運(yùn)營維護(hù)一個(gè)IP地址池,同時(shí),這也會(huì)出現(xiàn)IP是否穩(wěn)定的問題,這些問題無法被避免,我們針對(duì)具體問題具體分析,最高效、最快速的完成爬取數(shù)據(jù)的任務(wù)。

      目前,爬蟲已在互聯(lián)網(wǎng)金融領(lǐng)域的需求呈現(xiàn)出幾何增長的趨勢(shì)。未來互聯(lián)網(wǎng)經(jīng)濟(jì)將在我國總的經(jīng)濟(jì)產(chǎn)業(yè)中占有更高的比重,獲取一些重要的網(wǎng)絡(luò)信息都得需要爬蟲技術(shù)的參與,爬蟲技術(shù)為適應(yīng)新的需求,將會(huì)不斷地更新發(fā)展。

      2 關(guān)鍵方法和技術(shù)

      2.1 多線程機(jī)制

      網(wǎng)絡(luò)爬蟲需要下載規(guī)模非常龐大的網(wǎng)頁,如果僅僅采用單線程來操作,采集效果會(huì)非常差,并且會(huì)浪費(fèi)大量的時(shí)間,因?yàn)榕老x程序向服務(wù)器提交請(qǐng)求后要等待服務(wù)器的處理和返回結(jié)果,如果采用單線程,每個(gè)線程依次發(fā)送請(qǐng)求并等待服務(wù)器的依次響應(yīng),等待時(shí)間是所有網(wǎng)頁處理過程的疊加,效率大大降低。因此,可采用多線程機(jī)制來減少個(gè)別網(wǎng)頁的處理時(shí)間,以提高程序的效率。

      2.2數(shù)據(jù)庫訪問技術(shù)

      爬蟲技術(shù)采用隊(duì)列管理的方式,基于SQLserver數(shù)據(jù)庫。在本程序中,我們通過JAVA中的jdbc來操作數(shù)據(jù)庫,通過建立JDBC和ODBC之間的鏈接,即建立所謂的JDBC-ODBC橋接器,和數(shù)據(jù)庫的連接工作由ODBC去完成。JDBC的作用就是允許程序向數(shù)據(jù)庫發(fā)送SQL語句,而且可以指定數(shù)據(jù)的返回類型。

      3 實(shí)現(xiàn)過程

      3.1 爬蟲程序中的主要類和函數(shù)

      首先,創(chuàng)建InteralCrawler類,用來實(shí)現(xiàn)爬蟲程序基本的功能,包括多線程機(jī)制獲取網(wǎng)頁、處理網(wǎng)頁、搜索新的URL等功能。此外,InteralCrawler類還作為爬蟲程序接口,并且由其對(duì)象管理線程。

      CrawWork類用來創(chuàng)建工作對(duì)象,工作對(duì)象處理InteralCrawler所訪問的網(wǎng)頁鏈接。當(dāng)程序啟動(dòng)時(shí),CrawWork對(duì)象將請(qǐng)求處理網(wǎng)頁鏈接。該對(duì)象調(diào)用InteralCrawler對(duì)象的getWorkload()方法,該方法將返回一個(gè)還未處理的網(wǎng)頁鏈接。

      3.3 多線程的設(shè)計(jì)

      在我們使用多線程機(jī)制來設(shè)計(jì)爬蟲時(shí),大致流程的是:每個(gè)爬蟲線程抓取的數(shù)據(jù)要聚集起來,再統(tǒng)一處理,然后讓空閑的爬蟲程序分去處理新的網(wǎng)頁數(shù)據(jù)。這個(gè)工作流程可以讓我們聯(lián)想到master-slave模式,這個(gè)模式就相當(dāng)于在建筑一個(gè)工程時(shí),包工頭和建筑工人之間的關(guān)系,包工頭統(tǒng)一規(guī)劃整個(gè)項(xiàng)目的實(shí)施流程并向工人下發(fā)任務(wù),工人只需出力完成任務(wù)。根據(jù)這個(gè)模式,我們?cè)O(shè)計(jì)爬蟲線程。如下圖,多線程爬蟲如圖1所示。

      線程的設(shè)計(jì)是爬蟲程序的關(guān)鍵部分,爬蟲線程通過最佳優(yōu)先算法根據(jù)一個(gè)網(wǎng)頁得到其所有鏈接網(wǎng)頁的URL,再搜索所有鏈接到頁面中的關(guān)鍵字。如果搜索到所需數(shù)據(jù),爬蟲程序通過窗口指針向用戶報(bào)告。如果未搜索到數(shù)據(jù),結(jié)束線程,拋棄所有變量,正常返回。

      算法思想如下 :

      4 總結(jié)

      爬蟲技術(shù)在互聯(lián)網(wǎng)+時(shí)代具有廣泛的實(shí)際應(yīng)用價(jià)值,通過爬蟲技術(shù)可以實(shí)現(xiàn)網(wǎng)頁挖掘的核心算法。然而值得一提的是,爬蟲在訪問某些網(wǎng)頁時(shí),可能會(huì)遇到一些反爬措施,例如數(shù)據(jù)加密、網(wǎng)頁權(quán)限等問題,有些網(wǎng)站只有有權(quán)限的用戶能訪問。網(wǎng)上有一些出售數(shù)據(jù)的網(wǎng)站他們希望網(wǎng)絡(luò)爬蟲能爬取到他們的報(bào)告(相當(dāng)于給自己打了個(gè)廣告),但是又不能讓這些數(shù)據(jù)資源免費(fèi)被爬蟲程序爬取,網(wǎng)站會(huì)給網(wǎng)絡(luò)爬蟲一個(gè)用戶名和密碼,使得網(wǎng)絡(luò)爬蟲可以訪問網(wǎng)站一部分?jǐn)?shù)據(jù),重要的數(shù)據(jù)會(huì)設(shè)置權(quán)限。

      參考文獻(xiàn):

      [1] 潘春華,常敏.面向web的信息收集工具的設(shè)計(jì)與開發(fā)[J].計(jì)算機(jī)應(yīng)用研究,2002,13(6):144-148。

      [2] 杜亞軍.爬蟲算法設(shè)計(jì)與程序?qū)崿F(xiàn)[J].計(jì)算機(jī)應(yīng)用,2004.

      [3] (美)Jeff Heaton.網(wǎng)絡(luò)機(jī)器人JAVA編程指南[M]. 董兆峰,譯,北京:北京電子工業(yè)出版社,2002.

      [4] Heaton J.Programming Crawlers,Bots and Aggregators in Java[EB/OL].http://www.jeffheaton.com.2004.

      [20] 龔秋燕.并行網(wǎng)絡(luò)爬蟲設(shè)計(jì)與實(shí)現(xiàn)[D].上海:華東師范大學(xué),2010.

      猜你喜歡
      多線程
      Java多線程同步機(jī)制在網(wǎng)絡(luò)售票系統(tǒng)中的應(yīng)用
      Java并發(fā)工具包對(duì)并發(fā)編程的優(yōu)化
      百色市| 谢通门县| 安多县| 巴南区| 垫江县| 襄城县| 太保市| 寿宁县| 南开区| 苏尼特右旗| 渭源县| 竹溪县| 贡嘎县| 古田县| 什邡市| 阿瓦提县| 大洼县| 应城市| 改则县| 大田县| 英山县| 石棉县| 加查县| 策勒县| 乌拉特后旗| 淮阳县| 象州县| 泸定县| 彭州市| 射洪县| 陆河县| 浦东新区| 涟水县| 闵行区| 镶黄旗| 庆元县| 兴隆县| 舟曲县| 社会| 南华县| 广州市|