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

?

大數(shù)據(jù)時代下爬蟲技術(shù)應(yīng)用與研究

2018-02-23 15:19黃文杰,姚庚梅
科技創(chuàng)新與應(yīng)用 2018年6期
關(guān)鍵詞:網(wǎng)絡(luò)爬蟲

黃文杰,姚庚梅

摘 要:隨著互聯(lián)網(wǎng)快速發(fā)展和大數(shù)據(jù)時代的來臨,Web數(shù)據(jù)逐漸龐大,如何有效并快速地從互聯(lián)網(wǎng)上獲取到用戶自身需要的信息是亟需解決的問題,網(wǎng)絡(luò)爬蟲技術(shù)應(yīng)運而生,它是搜索引擎抓取系統(tǒng)的重要組成部分。文章是以標(biāo)訊快車項目為研究目標(biāo),依托本學(xué)院在大數(shù)據(jù)方面的研究優(yōu)勢,結(jié)合該院IT特色,具有較強的實際意義和社會意義。

關(guān)鍵詞:JavaScript;網(wǎng)絡(luò)爬蟲;Web信息抓取

中圖分類號:TP391.3 文獻(xiàn)標(biāo)志碼:A 文章編號:2095-2945(2018)06-0037-03

Abstract: With the rapid development of the Internet and the advent of big data era, it is urgent to solve the problem of how to get the information needed by users from the Internet effectively and quickly. Network crawler technology emerges as the times require, it is an important part of search engine grab system. This paper is based on the standard express project as the research goal, relying on the research advantage of big data in this college, combined with the IT characteristics of the institute, has a strong practical and social significance.

Keywords: JavaScript; WebCrawler; Web information scraping

1 網(wǎng)絡(luò)爬蟲的研究現(xiàn)狀與分析

搜索引擎的原理是根據(jù)用戶提交的關(guān)鍵詞返回一組URL地址,通過關(guān)鍵詞相似度進(jìn)行優(yōu)先級排序,用戶通過瀏覽Web頁面來尋找所需信息。但這種利用人工的方式來定位信息,仍然有缺乏統(tǒng)一管理的缺點,而且搜索結(jié)果精確度不高。此時,網(wǎng)絡(luò)爬蟲(Web crawler)技術(shù)的出現(xiàn)至關(guān)重要,網(wǎng)絡(luò)爬蟲是目前搜索引擎的重要組成部分,它的基本原則是在不影響服務(wù)器執(zhí)行效率和不造成致命沖擊的前提下,提高爬蟲的爬行速度,擴大數(shù)據(jù)下載量以及提升抓取信息的準(zhǔn)確率,這項技術(shù)的關(guān)鍵點為消除任何影響爬蟲爬行效率的障礙,令爬蟲達(dá)到高效且準(zhǔn)確無誤。

1.1 網(wǎng)絡(luò)爬蟲效率瓶頸分析

網(wǎng)絡(luò)爬蟲效率受到制約的主要因素有:網(wǎng)絡(luò)延時和爬蟲運行效率;爬蟲系統(tǒng)功能模塊設(shè)計不良;爬蟲算法和功能模塊之間協(xié)同工作效率低;網(wǎng)頁服務(wù)器適應(yīng)性差等。

1.2 動態(tài)網(wǎng)頁的信息抓取

首先,動態(tài)網(wǎng)頁是通過更新網(wǎng)站后臺數(shù)據(jù)庫,從服務(wù)器中傳遞參數(shù)而生成的網(wǎng)頁。本爬蟲采用的方法是通過對動態(tài)網(wǎng)頁進(jìn)行解析,對網(wǎng)頁數(shù)據(jù)中進(jìn)行信息處理并建立索引數(shù)據(jù)庫,重新定義一個自定義標(biāo)準(zhǔn)接口,當(dāng)爬蟲開始對該網(wǎng)頁進(jìn)行抓取前,對網(wǎng)頁的URL地址進(jìn)行判斷,若判斷該動態(tài)網(wǎng)頁符合自定義標(biāo)準(zhǔn)接口,爬蟲方可開始通過HTTPS的方法下載網(wǎng)頁,并建立和導(dǎo)入數(shù)據(jù)庫。

1.3 網(wǎng)頁的更新

本項目在更新網(wǎng)頁數(shù)據(jù)庫時,通過判斷網(wǎng)頁屬性是否改變來進(jìn)行更新,利用JavaScript在任何時候都能對任何對象的屬性進(jìn)行動態(tài)的增、刪、查、改的特性,無需修改爬蟲代碼而直接進(jìn)行網(wǎng)頁數(shù)據(jù)的更新抓取。

1.4 JavaScript算法實現(xiàn)

JavaScript語言是一種基于對象的編程語言,本作品使用JavaScript語言進(jìn)行編程的原因是:JavaScript與其他面向?qū)ο蟮恼Z言不一樣,它只有對象的概率,并沒有類,它的對象來源于其自身內(nèi)部的對象,主機環(huán)境中的對象和用戶創(chuàng)建的對象。本爬蟲構(gòu)建出JavaScript程序的對象層,方法層和語句層,逐層利用語句之間的數(shù)據(jù)依賴關(guān)系。利用函數(shù)對JavaScript程序控制全局變量的賦值語句中的左右值,參與語句中的謂詞的影響和對象多態(tài)繼承。利用JavaScript 動態(tài)進(jìn)行時定義對象,實現(xiàn)對網(wǎng)頁數(shù)據(jù)的統(tǒng)一封裝。

2 系統(tǒng)設(shè)計與應(yīng)用

2.1 項目設(shè)計原理

整個Internet互聯(lián)網(wǎng)就像一張龐大而有向的蜘蛛網(wǎng),每個網(wǎng)頁就像蜘蛛網(wǎng)里的節(jié)點,網(wǎng)頁相互有向指向其他網(wǎng)站頁面的地址,從而構(gòu)成了互聯(lián)網(wǎng)。如圖1所示,矩形A、B、C、D、E代表網(wǎng)站的頁面,箭頭代表網(wǎng)頁間相互指向URL地址的關(guān)系,所以,當(dāng)爬蟲在抓取網(wǎng)頁的時候,將會使用有向遍歷的算法進(jìn)行遍歷(即下文提出的深度優(yōu)先策略和廣度優(yōu)先策略)。本作品的主要研究方法在于依據(jù)客戶要求,對標(biāo)訊快車平臺實施爬蟲技術(shù),在抓取網(wǎng)頁的時候,使用廣度和深度并行的抓取策略,提高其抓取速度。當(dāng)使用廣度和深度優(yōu)先策略時,其時間復(fù)雜度與圖的節(jié)點與邊的數(shù)量成正相關(guān)關(guān)系,即與網(wǎng)頁的規(guī)模直接相關(guān)。(如圖2所示)。網(wǎng)絡(luò)爬蟲最理想的設(shè)計模型是高速、準(zhǔn)確、有針對性地遍歷網(wǎng)站中所有網(wǎng)頁信息,而要達(dá)到這樣的設(shè)計標(biāo)準(zhǔn)往往使用單一算法是無法實現(xiàn)的,需要對網(wǎng)頁數(shù)據(jù)資源進(jìn)行針對性的評估后合理地調(diào)度,然后對該網(wǎng)絡(luò)資源設(shè)定優(yōu)先值,優(yōu)先處理價值高的資源,滯后處理價值低或冷門的資源,再對其進(jìn)行組合運用算法和爬蟲策略。

2.2 項目實現(xiàn)方式

本作品研究的基本思路是針對大數(shù)據(jù)應(yīng)用,通過對海量詞匯的對比,使用爬蟲技術(shù)獲取到目標(biāo)客戶關(guān)注的內(nèi)容,下載到云平臺,再通過程序分析,將所需的數(shù)據(jù)提取分離出來,提供給目標(biāo)客戶,幫助目標(biāo)客戶進(jìn)行多維度檢索、資質(zhì)精準(zhǔn)匹配、招標(biāo)代理監(jiān)測、詢價采購、甲方監(jiān)測等。本研究項目在訪問一個站點時,會首先判斷URL地址和網(wǎng)頁屬性,確定需要訪問的范圍,若判斷不超時,則判定該站點為可用網(wǎng)頁,繼續(xù)進(jìn)行解析,若判斷為超時,則將該站點視為無效網(wǎng)頁。本爬蟲通過初始化客戶提供的URL種子,利用HTTP通信下載的方式訪問URL對應(yīng)的頁面和下載XML文檔,然后解釋網(wǎng)頁所有的URL提取網(wǎng)頁信息并保存網(wǎng)頁上的所有數(shù)據(jù)。爬行循環(huán)從解析出的URL挑選出其中一個進(jìn)行爬行,一個鏈接一個鏈接跟蹤下去,直到把網(wǎng)頁所有的URL爬完為止。本爬蟲在讀取URL頁面時,會首先對URL地址和網(wǎng)頁屬性進(jìn)行判斷,若程序判斷該網(wǎng)頁為動態(tài)網(wǎng)頁,則會自定義接口對其進(jìn)行適配;若判定超時或出錯則默認(rèn)為該URL頁面數(shù)據(jù)丟失或過期失效,將無效鏈接URL加入到錯誤隊伍中。反之,就繼續(xù)讀取和解析網(wǎng)頁的信息內(nèi)容。

2.3 項目應(yīng)用

標(biāo)訊快車是為了配合公共招投標(biāo)市場、優(yōu)化采購商和供應(yīng)商進(jìn)行全球性貿(mào)易的權(quán)威電子媒體機構(gòu),響應(yīng)《中華人民共和國招標(biāo)投標(biāo)法》而應(yīng)運而生的專業(yè)平臺。標(biāo)訊快車可及時發(fā)布國內(nèi)3000家招投標(biāo)代理網(wǎng)站保證項目信息,覆蓋了大部分國家財政性投資項目和社會投資項目。到目前為止,項目組成員已經(jīng)通過該公司提供的虛擬桌面,完成了標(biāo)訊快車平臺超過2000個代理網(wǎng)站的爬蟲,對抓取的數(shù)據(jù)進(jìn)行分析處理,并建立了相應(yīng)的云項目,為用戶極大地減輕了招投標(biāo)的時間成本,使用戶可根據(jù)自己的需求精準(zhǔn)定制行業(yè)信息。獨特性方面,由于是針對具體大數(shù)據(jù)應(yīng)用項目標(biāo)訊快車來實施爬蟲策略,能讓團(tuán)隊成員更及時的對代碼優(yōu)化的結(jié)果進(jìn)行測試和調(diào)試。消除重復(fù)處理。消除重復(fù)處理的主要目的是避免爬蟲在遇到頁面相互形成環(huán)路的網(wǎng)站上反復(fù)執(zhí)行而死循環(huán)的情況。因此,本爬蟲在訪問頁面時會進(jìn)行判斷處理,并對已經(jīng)訪問過的URL隊列進(jìn)行base標(biāo)記,對未訪問的URL隊列不進(jìn)行標(biāo)記。受限范圍。當(dāng)爬蟲在訪問一般網(wǎng)站時,經(jīng)常會遇到加密數(shù)據(jù)或權(quán)限的問題,加密數(shù)據(jù)是無法抓取下來的,有些網(wǎng)頁則需要管理員權(quán)限才能訪問,但本爬蟲是針對政府招標(biāo)網(wǎng)頁進(jìn)行數(shù)據(jù)抓取,所以一般不存在以上受限問題。無效或過期鏈接。檢查過期或無效的鏈接也是一個很重要的過程,這樣做不僅能提高網(wǎng)頁數(shù)據(jù)的使用率,還可以保證搜索文件的成功率。爬蟲效率分析。本項目系統(tǒng)是在實驗室的硬件、軟件環(huán)境下完成的,基本情況如表1所示。本爬蟲在進(jìn)行信息抓取時會構(gòu)造四個不同的棧堆,分別是等待棧堆,運行棧堆,錯誤棧堆,完成棧堆。一個初始URL從抓取開始到結(jié)束要經(jīng)歷4個過程,為了避免爬蟲重復(fù)爬行陷入死循環(huán),每一次URL從等待棧堆轉(zhuǎn)送到運行棧堆前,都會先與完成棧堆進(jìn)行比較,進(jìn)行消除重復(fù)的處理。

2.4 項目成果

使用普通爬蟲與本研究項目進(jìn)行比較,本次采用的比較方法為控制變量法,抓取的網(wǎng)頁保護(hù)華中,華北,東北,華南四個區(qū)域超過600個縣級市的政府采購網(wǎng)頁,總網(wǎng)頁數(shù)目2500個。通過比較發(fā)現(xiàn),普通爬蟲在12小時處理的網(wǎng)頁總數(shù)為1407個,本研究爬蟲在12小時處理的網(wǎng)頁總數(shù)為2132個,效率提升超過15%,所有網(wǎng)頁并未全部下載的主要原因有讀取網(wǎng)頁數(shù)據(jù)超時,系統(tǒng)判斷發(fā)現(xiàn)無效網(wǎng)頁而被舍棄。在爬行過程的最后階段,爬蟲的抓取效率開始下降,其中原因主要是隨著時間的推移,爬蟲程序開始占用系統(tǒng)資源;硬件環(huán)境由于發(fā)熱開始降頻。除了在標(biāo)訊快車項目實施本項目研究的爬蟲技術(shù)外,我們還力求與其他行業(yè)的公司合作,為互聯(lián)網(wǎng)的爬蟲技術(shù)作出貢獻(xiàn),把有效的數(shù)據(jù)檢索、數(shù)據(jù)匹配、數(shù)據(jù)監(jiān)測等信息提供給目標(biāo)客戶手中。

3 結(jié)束語

通過改進(jìn)網(wǎng)絡(luò)爬蟲自身結(jié)構(gòu)設(shè)計和調(diào)整策略選擇來提高爬蟲系統(tǒng)的效率,從而消除目前爬蟲工作效率低的瓶頸。目前越來越多的科研人員投入到網(wǎng)絡(luò)爬蟲的研究中,針對爬蟲策略和爬蟲方式的改進(jìn)方案也逐漸被提出并廣泛采用。

參考文獻(xiàn):

[1]李應(yīng).基于Hadoop的分布式主題網(wǎng)絡(luò)爬蟲研究[J].軟件導(dǎo)刊,2016(03).

[2]劉紅梅.垂直搜索引擎主題爬蟲搜索策略研究[J].科技信息,2013(08).

猜你喜歡
網(wǎng)絡(luò)爬蟲
煉鐵廠鐵量網(wǎng)頁數(shù)據(jù)獲取系統(tǒng)的設(shè)計與實現(xiàn)
基于社會網(wǎng)絡(luò)分析的權(quán)威網(wǎng)頁挖掘研究
主題搜索引擎中網(wǎng)絡(luò)爬蟲的實現(xiàn)研究
淺析如何應(yīng)對網(wǎng)絡(luò)爬蟲流量
網(wǎng)絡(luò)爬蟲針對“反爬”網(wǎng)站的爬取策略研究
平江县| 当涂县| 原阳县| 锦州市| 泸定县| 增城市| 金华市| 聂荣县| 铁岭市| 蕲春县| 库车县| 五大连池市| 额尔古纳市| 保康县| 南部县| 韩城市| 万盛区| 东山县| 海盐县| 建德市| 湛江市| 夏津县| 白山市| 平乡县| 育儿| 正安县| 兴宁市| 平泉县| 攀枝花市| 东明县| 泾川县| 慈利县| 松原市| 宁远县| 大关县| 遵化市| 舟山市| 许昌市| 南昌市| 宁晋县| 广西|