国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

劉壽臣

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

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

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2016)17-0016-02

1 引言

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

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

網(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)中,時時刻刻都有各式各樣的金融網(wǎng)站發(fā)布實時的數(shù)據(jù)信息,如股票的走勢、某個公司的運營情況、某個專家對當前經(jīng)濟形式的分析、在經(jīng)濟領(lǐng)域新產(chǎn)生了哪些技術(shù)等等。大型金融機構(gòu)或者理財?shù)膫€人都需要最前沿的工具來抓取這些必要的數(shù)據(jù)信息,以供研究。

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

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

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

2.1 多線程機制

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

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

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

3 實現(xiàn)過程

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

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

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

3.3 多線程的設(shè)計

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

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

算法思想如下 :

4 總結(jié)

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

參考文獻:

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

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

[3] (美)Jeff Heaton.網(wǎng)絡(luò)機器人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è)計與實現(xiàn)[D].上海:華東師范大學,2010.

猜你喜歡
多線程
Java多線程同步機制在網(wǎng)絡(luò)售票系統(tǒng)中的應(yīng)用
Java并發(fā)工具包對并發(fā)編程的優(yōu)化
阿巴嘎旗| 屯留县| 阿坝县| 洮南市| 盐池县| 始兴县| 安新县| 武夷山市| 邢台县| 繁昌县| 永兴县| 深泽县| 佳木斯市| 甘谷县| 连云港市| 北海市| 东阿县| 当阳市| 安仁县| 株洲县| 新龙县| 拜城县| 武穴市| 沛县| 汉沽区| 竹北市| 仙桃市| 长汀县| 岑巩县| 海盐县| 乌兰县| 鄱阳县| 武山县| 博爱县| 哈密市| 来凤县| 南木林县| 东乌珠穆沁旗| 即墨市| 南平市| 津南区|