国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

php 網(wǎng)站 下載百度網(wǎng)址大全網(wǎng)站大全

php 網(wǎng)站 下載,百度網(wǎng)址大全網(wǎng)站大全,seo網(wǎng)站建設(shè)是什么意思,海報字體手繪轉(zhuǎn)換器文章目錄 大數(shù)據(jù)采集概述1.互聯(lián)網(wǎng)大數(shù)據(jù)與采集1.1互聯(lián)網(wǎng)大數(shù)據(jù)來源1.社交媒體2.社交網(wǎng)絡(luò)3.百科知識庫4.新聞網(wǎng)站5.評論信息6.位置型信息 1.2 互聯(lián)網(wǎng)大數(shù)據(jù)的特征1.大數(shù)據(jù)類型和語義更加豐富2.數(shù)據(jù)的規(guī)范化程度弱3.數(shù)據(jù)的流動性更大4.數(shù)據(jù)的開放性更好5.數(shù)據(jù)的來源更加豐富6.互聯(lián)…

文章目錄

  • 大數(shù)據(jù)采集概述
    • 1.互聯(lián)網(wǎng)大數(shù)據(jù)與采集
      • 1.1互聯(lián)網(wǎng)大數(shù)據(jù)來源
        • 1.社交媒體
        • 2.社交網(wǎng)絡(luò)
        • 3.百科知識庫
        • 4.新聞網(wǎng)站
        • 5.評論信息
        • 6.位置型信息
      • 1.2 互聯(lián)網(wǎng)大數(shù)據(jù)的特征
        • 1.大數(shù)據(jù)類型和語義更加豐富
        • 2.數(shù)據(jù)的規(guī)范化程度弱
        • 3.數(shù)據(jù)的流動性更大
        • 4.數(shù)據(jù)的開放性更好
        • 5.數(shù)據(jù)的來源更加豐富
        • 6.互聯(lián)網(wǎng)大數(shù)據(jù)的價值體現(xiàn)形式更加多樣化
    • 2 Python 爬蟲大數(shù)據(jù)采集技術(shù)的重要性
      • 2.1大數(shù)據(jù)采集技術(shù)的重要性
      • 2.2互聯(lián)網(wǎng)大數(shù)據(jù)的重要性
      • 2.3Python開發(fā)生態(tài)的重要性
    • 3.爬蟲技術(shù)研究及應(yīng)用現(xiàn)狀
    • 4爬蟲技術(shù)的應(yīng)用場景
      • 4.1采集型爬蟲
      • 4.2監(jiān)測型爬蟲
    • 5爬蟲大數(shù)據(jù)采集的技術(shù)體系
      • 5.1技術(shù)體系構(gòu)成
      • 5.2相關(guān)技術(shù)
        • 1.相關(guān)協(xié)議與規(guī)范
        • 2.Web信息提取技術(shù)
        • 3.典型應(yīng)用中的數(shù)據(jù)獲取技術(shù)
        • 4.網(wǎng)絡(luò)爬蟲的軟件技術(shù)
      • 5.3技術(shù)評價方法
        • 1.是否遵守Robots 協(xié)議
        • 2.友好爬蟲請求技術(shù)
        • 3.高效采集技術(shù)
        • 4.對增量式采集的支持
        • 5.對動態(tài)頁面的支持
        • 6.頁面編碼與語言處理能力
        • 7.主題相關(guān)度評估
        • 8.對分布式架構(gòu)的支持
        • 9.可配置線程技術(shù)
        • 10.容錯能力
    • 6爬蟲大數(shù)據(jù)采集與挖掘的合規(guī)性
      • 6.1.數(shù)據(jù)抓取權(quán)限
      • 6.2.爬蟲的訪問方式
      • 6.3.數(shù)據(jù)量與數(shù)據(jù)的使用
    • 7爬蟲大數(shù)據(jù)采集技術(shù)的展望
      • 1.HTTP 協(xié)議的升級
      • 2.IPv6的廣泛應(yīng)用
      • 3. HTML語言的發(fā)展
      • 4.新型網(wǎng)站架構(gòu)的出現(xiàn)
      • 5. Web應(yīng)用的推動
      • 6.行業(yè)規(guī)范的推動

大數(shù)據(jù)采集概述

1.互聯(lián)網(wǎng)大數(shù)據(jù)與采集

1.1互聯(lián)網(wǎng)大數(shù)據(jù)來源

廣義的互聯(lián)網(wǎng)大數(shù)據(jù)即包括各種互聯(lián)網(wǎng) Web 應(yīng)用中不斷累計產(chǎn)生出來的數(shù)據(jù),也包括Web后臺的傳統(tǒng)業(yè)務(wù)處理系統(tǒng)產(chǎn)生的數(shù)據(jù)。狹義的互聯(lián)網(wǎng)大數(shù)據(jù)主要指基于互聯(lián)網(wǎng)Web應(yīng)用所產(chǎn)生的數(shù)據(jù),例如新聞信息、微博、網(wǎng)絡(luò)論壇帖子、電商評論等。
在互聯(lián)網(wǎng)大數(shù)據(jù)研究和應(yīng)用中,常見的數(shù)據(jù)來源有以下類型。

1.社交媒體

微博、網(wǎng)絡(luò)論壇等各種社交平臺已經(jīng)成為人們聊天、分享信息、交換意見的重要場合,不斷地產(chǎn)生各種即時信息(User Generated Content,UGC)。這些數(shù)據(jù)體現(xiàn)了人們的觀點、情緒、行為,以及群體關(guān)注的熱點、話題等許多信息。這些信息已經(jīng)逐步被越來越多的機(jī)構(gòu)重視,用來進(jìn)一步挖掘分析,為提升客戶服務(wù)、產(chǎn)品質(zhì)量提供準(zhǔn)確資料。

2.社交網(wǎng)絡(luò)

社交網(wǎng)絡(luò)主要來源于社交平臺,它更側(cè)重于人際關(guān)系數(shù)據(jù),而社交媒體更側(cè)重于內(nèi)容,也有很多文獻(xiàn)資料并不太區(qū)分社交網(wǎng)絡(luò)和社交媒體。著名學(xué)者尼古拉斯·克里斯塔基斯(Nicholas A. Christakis)和詹姆斯·富勒(James H. Fowler)撰寫了《大連接》一書,認(rèn)為人與人之間,甚至人與物之間、人與信息之間、人與自然之間,都可以形成連接?,F(xiàn)在,人類社會進(jìn)入了一個大連接時代,來自于社交網(wǎng)絡(luò)的連接數(shù)據(jù)已經(jīng)被廣泛應(yīng)用,成為互聯(lián)網(wǎng)大數(shù)據(jù)中的重要組成部分。

3.百科知識庫

大數(shù)據(jù)技術(shù)應(yīng)用是一種基于經(jīng)驗數(shù)據(jù)的應(yīng)用,經(jīng)驗數(shù)據(jù)的質(zhì)量、完整性和可得性對于大數(shù)據(jù)的成功實施非常重要。但是,經(jīng)驗知識往往存在于每個人的大腦中,其表達(dá)、存儲并不是很容易的事。隨著互聯(lián)網(wǎng)應(yīng)用的擴(kuò)展,出現(xiàn)了很多百科知識庫,例如百度百科、維基百科等。開放式的知識管理方式允許每個人對知識的正確性進(jìn)行維護(hù),因此出現(xiàn)了一些高質(zhì)量的百科知識庫,對于在大數(shù)據(jù)應(yīng)用中進(jìn)行知識獲取、分析和推理具有重要價值。

4.新聞網(wǎng)站

新聞信息是互聯(lián)網(wǎng)大數(shù)據(jù)另一個重要的組成部分,涵蓋社會新聞、科技新聞、國際新聞等。隨著新聞發(fā)布機(jī)制的創(chuàng)新,互聯(lián)網(wǎng)上新聞信息發(fā)布的及時性提高,一些個性化推送平臺使得新聞的受眾選擇更加精準(zhǔn)。各類新聞信息體現(xiàn)了當(dāng)前各個領(lǐng)域的重要事件以及事件的演化過程,因此為大數(shù)據(jù)的動態(tài)性和深度分析挖掘提供了很好的數(shù)據(jù)源和示例。

5.評論信息

股票評論、商品評論、酒店評論、服務(wù)質(zhì)量評論等許多評論信息在互聯(lián)網(wǎng)上廣泛存在,它們屬于典型的短文本,這類數(shù)據(jù)在大數(shù)據(jù)分析應(yīng)用中具有典型的代表性,是一種重要的大數(shù)據(jù)。其分析和處理方法不同于新聞信息之類的長文本,互聯(lián)網(wǎng)上的各類評論信息為相應(yīng)的技術(shù)研究和應(yīng)用開發(fā)提供了充足的數(shù)據(jù)。

6.位置型信息

—隨著移動互聯(lián)網(wǎng)應(yīng)用的快速普及,人們越來越習(xí)慣于在社交平臺上進(jìn)行簽到,移動社交平臺通常也記錄了人們移動的位置和軌跡。這類數(shù)據(jù)作為一種重要的大數(shù)據(jù)類型,在大數(shù)據(jù)分析應(yīng)用中具有較高價值,因此也是值得關(guān)注的互聯(lián)網(wǎng)大數(shù)據(jù)之一。

此外還有很多其他類型的互聯(lián)網(wǎng)大數(shù)據(jù),這里就不一一列舉了。

1.2 互聯(lián)網(wǎng)大數(shù)據(jù)的特征

對于一般意義上的大數(shù)據(jù)而言,特別是來自于OLTP(聯(lián)機(jī)事務(wù)處理)的大數(shù)據(jù),通常認(rèn)為其數(shù)據(jù)具有4V(Volume、Variety、Value、Velocity)、5V(Volume、Velocity、Variety, Veracity、Variability)或 7V(Volume、Velocity、 Vast Variety、Veracity,Value、Visualization)等特征。但是不管哪種,一般都把數(shù)據(jù)的大容量、數(shù)據(jù)蘊含的價值、數(shù)據(jù)來源的多樣化以及數(shù)據(jù)處理的快速化等特點作為大數(shù)據(jù)的基本特征。

互聯(lián)網(wǎng)大數(shù)據(jù)除了具備這些基本特征外,還有一些新特征,歸納起來主要有互聯(lián)網(wǎng)大數(shù)據(jù)開放性好、容易采集、數(shù)據(jù)類型豐富、數(shù)據(jù)量大、流動性大、來源多樣化、弱規(guī)范性、非結(jié)構(gòu)化數(shù)據(jù)多,并且隨著“互聯(lián)網(wǎng)+”國家戰(zhàn)略的推進(jìn),互聯(lián)網(wǎng)大數(shù)據(jù)的價值體現(xiàn)具有多樣化和廣泛性??傊?#xff0c;互聯(lián)網(wǎng)大數(shù)據(jù)具備大數(shù)據(jù)的各種典型特征,是進(jìn)行大數(shù)據(jù)相關(guān)教學(xué)、科研和應(yīng)用的重要數(shù)據(jù)來源。

其特征具體說明如下:

1.大數(shù)據(jù)類型和語義更加豐富

互聯(lián)網(wǎng)大數(shù)據(jù)的數(shù)據(jù)類型除了傳統(tǒng)的基本數(shù)據(jù)類型以外,還有文本型、音/視頻、用戶標(biāo)簽、地理位置信息、社交連接數(shù)據(jù)等。這些數(shù)據(jù)廣泛存在于各類互聯(lián)網(wǎng)應(yīng)用中,例如新聞網(wǎng)站上的新聞、網(wǎng)絡(luò)論壇中的帖子、基于位置服務(wù)系統(tǒng)(LBS)中的經(jīng)緯度信息,以及微博中用戶關(guān)注所形成的連接數(shù)據(jù)。

這種數(shù)據(jù)雖然本質(zhì)上屬于字符串、整型等基本數(shù)據(jù)類型,但是它們經(jīng)過重新整合已經(jīng)形成了具有一定語義的數(shù)據(jù)單元,例如從用戶評論文本中可以引申出用戶的情感、人格,從用戶的軌跡數(shù)據(jù)中可以引申出其活動規(guī)律,等等。

2.數(shù)據(jù)的規(guī)范化程度弱

弱規(guī)范性的數(shù)據(jù)是人們表達(dá)靈活性的體現(xiàn),因此具有很高的研究價值,在關(guān)系型數(shù)據(jù)為主的時代,此類數(shù)據(jù)并不多見。由于互聯(lián)網(wǎng)數(shù)據(jù)的動態(tài)性、交互性都比較強(qiáng),在信息傳播作用下,用戶生成的信息通常也有很大的相似性。此外,用戶生成的信息是可以由用戶控制的,也就是用戶可以在此后進(jìn)行修改、刪除。因此,在采集互聯(lián)網(wǎng)大數(shù)據(jù)時就可能會出現(xiàn)信息內(nèi)容不一致性的情況。

此外,互聯(lián)網(wǎng)應(yīng)用中對數(shù)據(jù)的校驗并不是很嚴(yán)格,甚至可能是用戶自定義的,這種數(shù)據(jù)規(guī)范化方式與OLTP預(yù)先定義的模式也完全不同。典型的是微博中的用戶標(biāo)簽,每個人可以根據(jù)自己的偏好設(shè)定自己的標(biāo)簽,兩個不同的標(biāo)簽可能具有相同的含義,而相同的標(biāo)簽對不同用戶來說可能有不同的含義。

3.數(shù)據(jù)的流動性更大

在OLTP中,數(shù)據(jù)產(chǎn)生的速度取決于業(yè)務(wù)組織和規(guī)模,除了銀行、電信等大型的聯(lián)機(jī)系統(tǒng)外,OLTP數(shù)據(jù)流動性一般并不高,數(shù)據(jù)生成速度也很有限。但是在互聯(lián)網(wǎng)環(huán)境下,越來越多的應(yīng)用由于面對整個互聯(lián)網(wǎng)用戶群體而使得數(shù)據(jù)產(chǎn)生、數(shù)據(jù)流動性大大增強(qiáng),例如微博、LBS服務(wù)系統(tǒng)等,這種流動性主要體現(xiàn)在信息傳播、數(shù)據(jù)在不同節(jié)點之間的快速傳遞。這種特點也就決定了大數(shù)據(jù)分析技術(shù)要具備對數(shù)據(jù)流的高速處理能力,挖掘算法要能夠支持對數(shù)據(jù)流的分析,技術(shù)平臺要具備充足的并行處理能力。

4.數(shù)據(jù)的開放性更好

OLTP具有很強(qiáng)的封閉性,但對于互聯(lián)網(wǎng)大數(shù)據(jù)而言,由于互聯(lián)網(wǎng)應(yīng)用架構(gòu)本身具有去中心化的特點,也就使得各種互聯(lián)網(wǎng)應(yīng)用中的數(shù)據(jù)在較大范圍內(nèi)是公開的,可以自由獲取。而且由于互聯(lián)網(wǎng)應(yīng)用的開放性特點,對于用戶的身份審查并不太嚴(yán)格,用戶之間進(jìn)行數(shù)據(jù)共享和自由分享也就變得更加容易。

5.數(shù)據(jù)的來源更加豐富

隨著智能終端的快速普及、通信網(wǎng)絡(luò)的升級換代加快、智能技術(shù)和交互手段越來越豐富,互聯(lián)網(wǎng)應(yīng)用程序形式將變得豐富多彩,也將產(chǎn)生與以往不同的數(shù)據(jù)形式,例如虛擬現(xiàn)實(VR)技術(shù)的應(yīng)用就可能直接將人的真實表情數(shù)據(jù)、生理數(shù)據(jù)記錄下來。此外,云計算、物聯(lián)網(wǎng)技術(shù)的出現(xiàn)帶來了新的服務(wù)模式,它們與互聯(lián)網(wǎng)的結(jié)合也將極大地擴(kuò)大互聯(lián)網(wǎng)大數(shù)據(jù)來源。多種不同來源的數(shù)據(jù)以互聯(lián)網(wǎng)為中心進(jìn)行融合,正符合了大數(shù)據(jù)的基本特征,因此可以在這個基礎(chǔ)上做更有效的分析和挖掘。

6.互聯(lián)網(wǎng)大數(shù)據(jù)的價值體現(xiàn)形式更加多樣化

隨著“互聯(lián)網(wǎng)+”國家戰(zhàn)略的推進(jìn),互聯(lián)網(wǎng)思維在各個行業(yè)得到運用,互聯(lián)網(wǎng)大數(shù)據(jù)與每個行業(yè)領(lǐng)域都存在結(jié)合點,因此大數(shù)據(jù)的價值體現(xiàn)也就不會僅局限于互聯(lián)網(wǎng)應(yīng)用自身、例如互聯(lián)網(wǎng)與出租車的結(jié)合,使得基于互聯(lián)網(wǎng)大數(shù)據(jù)的車流預(yù)測、路徑規(guī)劃更具有全局性。

互聯(lián)網(wǎng)大數(shù)據(jù)與科學(xué)研究結(jié)合在一起也形成了目前頗具特色的研究范式。從以社會調(diào)查和試驗為主要基礎(chǔ)的社會科學(xué)領(lǐng)域,逐漸過渡到以互聯(lián)網(wǎng)為背景來構(gòu)建自己的數(shù)據(jù)源,例如很多的研究以微博、Twitter 中的用戶行為數(shù)據(jù)為基礎(chǔ),開展一些心理、情感方面的研究,也凸顯了互聯(lián)網(wǎng)大數(shù)據(jù)價值的多樣化。在新聞學(xué)、金融學(xué)、認(rèn)知心理學(xué)、法學(xué)等眾多領(lǐng)坡,都體現(xiàn)了互聯(lián)網(wǎng)大數(shù)據(jù)與各個學(xué)科領(lǐng)域結(jié)合的效用。

2 Python 爬蟲大數(shù)據(jù)采集技術(shù)的重要性

Python爬蟲大數(shù)據(jù)采集技術(shù)的重要性可以從大數(shù)據(jù)采集的重要性、互聯(lián)網(wǎng)大數(shù)據(jù)的重要性以及 Python開發(fā)生態(tài)的重要性3個方面來分析。

2.1大數(shù)據(jù)采集技術(shù)的重要性

大數(shù)據(jù)處理過程通常涉及若干個重要環(huán)節(jié),包括數(shù)據(jù)采集、結(jié)構(gòu)化處理、數(shù)據(jù)存儲、分析挖掘、可視化、共享與交易等。數(shù)據(jù)采集是整個過程的開始,如果沒有數(shù)據(jù),后續(xù)的處理環(huán)節(jié)就無法進(jìn)行。如果沒有真正的大數(shù)據(jù),后續(xù)環(huán)節(jié)的處理技術(shù)就會退化成為當(dāng)前已經(jīng)成熟的普通數(shù)據(jù)挖掘應(yīng)用技術(shù)。

從大數(shù)據(jù)的技術(shù)構(gòu)架來看,大數(shù)據(jù)采集處于整個架構(gòu)的底層,是整個架構(gòu)的基礎(chǔ)。大數(shù)據(jù)采集技術(shù)性能的好壞直接影響到數(shù)據(jù)采集的效率和數(shù)據(jù)的質(zhì)量,沒有高性能的采集技術(shù),大數(shù)據(jù)的后續(xù)處理和研究開發(fā)就無從談起。

2.2互聯(lián)網(wǎng)大數(shù)據(jù)的重要性

互聯(lián)網(wǎng)大數(shù)據(jù)能滿足大數(shù)據(jù)技術(shù)教學(xué)的要求。當(dāng)前,金融、交通、醫(yī)療等具體領(lǐng)域中的大數(shù)據(jù)在研究和應(yīng)用時遇到的主要問題有數(shù)據(jù)領(lǐng)域封閉、共享范圍有限、數(shù)據(jù)量少、靜態(tài)數(shù)據(jù)偏多、缺乏動態(tài)機(jī)制、數(shù)據(jù)類型過于單一、應(yīng)用價值很有限等。
隨著互聯(lián)網(wǎng)應(yīng)用的廣泛普及,越來越多的數(shù)據(jù)將出現(xiàn)在互聯(lián)網(wǎng)上。社交媒體、網(wǎng)絡(luò)論壇等網(wǎng)絡(luò)應(yīng)用時刻產(chǎn)生各種用戶數(shù)據(jù),這些數(shù)據(jù)反映了網(wǎng)絡(luò)用戶的行為特征、語言特征、群體特征等,具有很高的研究和應(yīng)用價值。此外,“互聯(lián)網(wǎng)+”國家戰(zhàn)略的實施將深刻影響今后很長時間內(nèi)的社會發(fā)展,越來越多的機(jī)構(gòu)將互聯(lián)網(wǎng)作為與客戶交互、創(chuàng)造新業(yè)務(wù)模式的途徑,各領(lǐng)域的數(shù)據(jù)也將會越來越多出現(xiàn)在互聯(lián)網(wǎng)上。因此,互聯(lián)網(wǎng)大數(shù)據(jù)在大數(shù)據(jù)技術(shù)研究、教學(xué)、應(yīng)用和開發(fā)中的重要性就非常凸顯,將互聯(lián)網(wǎng)大數(shù)據(jù)作為大數(shù)據(jù)技術(shù)研究和應(yīng)用開發(fā)的一種數(shù)據(jù)源是非常合適的,解決了當(dāng)前大數(shù)據(jù)研究應(yīng)用存在的無米之炊的局面。

2.3Python開發(fā)生態(tài)的重要性

近年來,Python語言逐步成熟,眾多的開源軟件和插件極大地豐富了Python的開發(fā)生態(tài)。這些Python開源軟件和插件涵蓋科學(xué)計算、語言處理、文本挖掘、圖像處理等,極大地方便了開發(fā)人員進(jìn)行各種開發(fā),因此得到了越來越多開發(fā)人員的追捧。
Python已經(jīng)從各種計算機(jī)編程語言中脫穎而出,成為一種有前途的語言和開發(fā)環(huán)境,而爬蟲系統(tǒng)作為一種重要的互聯(lián)網(wǎng)大數(shù)據(jù)采集手段,系統(tǒng)的設(shè)計、實現(xiàn)和構(gòu)建選擇合適的語言將有助于整個大數(shù)據(jù)技術(shù)構(gòu)架的集成化程度的提升。因此,選擇Python語言進(jìn)行互聯(lián)網(wǎng)大數(shù)據(jù)采集技術(shù)的實現(xiàn)具有一定實際意義和必要性。

3.爬蟲技術(shù)研究及應(yīng)用現(xiàn)狀

網(wǎng)絡(luò)爬蟲的應(yīng)用源于20世紀(jì)90年代的Google 等搜索引擎,爬蟲用于抓取互聯(lián)網(wǎng)上的Web頁面,再由搜索引擎進(jìn)行索引和存儲,從而為網(wǎng)民提供信息檢索服務(wù)。在系統(tǒng)架構(gòu)上,網(wǎng)絡(luò)爬蟲位于搜索引擎的后臺,并未直接與網(wǎng)民接觸,因此在較長的時間內(nèi)并未被廣大開發(fā)人員所關(guān)注,相應(yīng)的技術(shù)研究也很有限。

下圖是在知網(wǎng)數(shù)據(jù)庫中檢索“網(wǎng)絡(luò)爬蟲”關(guān)鍵詞,并按照年度統(tǒng)計相關(guān)文獻(xiàn)數(shù)量后得到的趨勢圖。該圖反映了從2002年至2017年國內(nèi)對網(wǎng)絡(luò)爬蟲技術(shù)研究和應(yīng)用的變化趨勢,大體上反映了爬蟲技術(shù)的關(guān)注度。

image-20221009095302425

從圖中可以看出,2004年以前該技術(shù)和應(yīng)用的關(guān)注度幾乎為0,但2005年以來人們對網(wǎng)絡(luò)爬蟲技術(shù)的關(guān)注度快速上升。進(jìn)一步分析發(fā)現(xiàn),對網(wǎng)絡(luò)爬蟲技術(shù)及應(yīng)用的關(guān)注度排名在前面的領(lǐng)域依次是計算機(jī)軟件及計算機(jī)應(yīng)用、互聯(lián)網(wǎng)技術(shù)與自動化技術(shù)、新聞與傳媒、貿(mào)易經(jīng)濟(jì)、圖書情報與數(shù)字圖書館、企業(yè)經(jīng)濟(jì)、自然地理學(xué)和測繪學(xué)、金融投資,其中超過90%的關(guān)注度主要集中在前兩者,它們側(cè)重于爬蟲技術(shù)研究,緊接在后面的是主要的網(wǎng)絡(luò)應(yīng)用領(lǐng)域,可以看出爬蟲技術(shù)的應(yīng)用領(lǐng)域很廣泛。

爬蟲是一個實踐性很強(qiáng)的技術(shù)活,因此網(wǎng)絡(luò)爬蟲技術(shù)關(guān)注度的變化趨勢也從另一個角度反映了互聯(lián)網(wǎng)上運行的爬蟲數(shù)量的增長速度。除了為數(shù)不多的主流互聯(lián)網(wǎng)搜索引擎爬蟲外,互聯(lián)網(wǎng)上運行的爬蟲主要來自個人、中小型企業(yè)單位。

爬蟲應(yīng)用的迅速普及得益于大量的網(wǎng)絡(luò)爬蟲開源包或底層技術(shù)開源包的出現(xiàn),這些開源包使得開發(fā)一個具體應(yīng)用的網(wǎng)絡(luò)爬蟲采集系統(tǒng)變得容易很多。但是,也正由于這個原因,高度封裝的開源包使得很少有人愿意深入了解其中的關(guān)鍵技術(shù),導(dǎo)致這種途徑生產(chǎn)出來的爬蟲質(zhì)量、性能和友好程度都受到很大影響。甚至網(wǎng)絡(luò)爬蟲因此被認(rèn)為是一個不太“優(yōu)雅”的行業(yè),當(dāng)然這種看法并不正確,不能被低質(zhì)量的個人或小型爬蟲迷惑而看不清行業(yè)現(xiàn)狀。相反,我們應(yīng)當(dāng)深入分析導(dǎo)致這種問題的技術(shù)和非技術(shù)因素,制定更為完善的爬蟲大數(shù)據(jù)采集規(guī)范或要求。

目前,低質(zhì)量的個人、小型爬蟲存在的主要問題可以歸結(jié)為以下3個方面。

(1)不遵守Robots協(xié)議,連接一個Web服務(wù)器之后不檢測虛擬根目錄下是否存在robots.txt文件,也不管文件里面關(guān)于頁面訪問許可列表的規(guī)定。由于這個協(xié)議是一個行業(yè)規(guī)范,忽視或不遵守這個協(xié)議也就意味著行業(yè)的發(fā)展會進(jìn)入不良狀態(tài)。

(2)爬行策略沒有優(yōu)化,一般開源系統(tǒng)實現(xiàn)了寬度優(yōu)先或深度優(yōu)先的策略,但是并沒有對Web頁面的具體特征做優(yōu)化,例如Portal 類型頁面的超鏈接非常多,這些鏈接如果直接進(jìn)入爬行任務(wù),就很容易對Web服務(wù)器造成拒絕服務(wù)攻擊。

(3)許多爬蟲實現(xiàn)了多線程、分布式的架構(gòu),這個看似好的軟件架構(gòu)技術(shù)對于網(wǎng)絡(luò)爬蟲來說可能只是“一廂情愿”??蛻舳思軜?gòu)設(shè)計得再好,爬行策略、增量模式等問題沒有解決好,其效果就相當(dāng)于制造了很多小爬蟲在服務(wù)器上同時運行。這種情況最終導(dǎo)致兩敗俱傷的結(jié)局,Web服務(wù)器需要投入大量的人力、物力和資金進(jìn)行爬蟲檢測和阻斷,對于爬蟲也一樣,因此最終對Web服務(wù)器和采集數(shù)據(jù)的爬蟲都不利。

4爬蟲技術(shù)的應(yīng)用場景

網(wǎng)絡(luò)爬蟲技術(shù)出身于互聯(lián)網(wǎng)搜索引擎,用于從互聯(lián)網(wǎng)上可達(dá)URL所指向的Web頁面或資源采集信息內(nèi)容。爬蟲技術(shù)經(jīng)過較長時間的發(fā)展,目前的應(yīng)用范圍變得越來越廣。在涉及從互聯(lián)網(wǎng)上進(jìn)行大量頁面的自動采集時基本上都離不開爬蟲技術(shù)。

爬蟲技術(shù)的應(yīng)用可以分為兩大類,分別稱為采集型爬蟲和監(jiān)測型爬蟲。

4.1采集型爬蟲

采集型爬蟲延續(xù)了搜索引擎爬蟲技術(shù),是目前使用最廣泛的模式。這種爬蟲在搜索引擎爬蟲技術(shù)的基礎(chǔ)上對抓取范圍、意圖做了不同程度的限定,從而產(chǎn)生一些新型應(yīng)用。以下列舉一些該類型爬蟲的典型使用場景。

(1)互聯(lián)網(wǎng)搜索引擎

爬蟲技術(shù)是互聯(lián)網(wǎng)搜索引擎系統(tǒng)的關(guān)鍵技術(shù)。不管是通用的搜索引擎,還是垂直搜索引擎系統(tǒng),其龐大的數(shù)據(jù)都是源自于互聯(lián)網(wǎng)上各種應(yīng)用中的數(shù)據(jù),通過爬蟲技術(shù)可以對互聯(lián)網(wǎng)上的頁面信息進(jìn)行及時、全面的采集,從而能夠使搜索引擎系統(tǒng)保持新鮮數(shù)據(jù),更好地為用戶提供查詢服務(wù)。

(2)互聯(lián)網(wǎng)輿情監(jiān)測

這是當(dāng)前的應(yīng)用熱點,通過采集互聯(lián)網(wǎng)上一些特定網(wǎng)站中的頁面進(jìn)行信息提取、敏感詞過濾、智能聚類分類、主題檢測、主題聚焦、統(tǒng)計分析等處理之后,給出輿情態(tài)勢研判的一些分析報告。當(dāng)前典型的互聯(lián)網(wǎng)輿情監(jiān)控系統(tǒng)所能達(dá)到的監(jiān)測效果都取決于其互聯(lián)網(wǎng)信息的獲取能力,包括監(jiān)控系統(tǒng)在Web頁面獲取時的并發(fā)能力、對靜態(tài)和動態(tài)等不同類型頁面的獲取能力、對實時頁面數(shù)據(jù)的獲取能力等。

(3)知識圖譜的構(gòu)建

知識圖譜以結(jié)構(gòu)化的形式描述客觀世界中的概念、實體及其關(guān)系,其構(gòu)建需要大規(guī)模數(shù)據(jù)。互聯(lián)網(wǎng)空間中的大量知識庫是構(gòu)建知識圖譜的理想數(shù)據(jù)源。典型的開放知識庫有 Wikidata(維基數(shù)據(jù))、DBpedia、Freebase,行業(yè)知識庫有IMDB(互聯(lián)網(wǎng)電影資料庫)、MusicBrainz(音樂信息庫)等。爬蟲是實現(xiàn)這些知識內(nèi)容自動采集、自動更新的途徑。

(4)社交媒體評論信息監(jiān)測

隨著社交媒體在互聯(lián)網(wǎng)上的廣泛應(yīng)用,出現(xiàn)了大量評論型頁面,對這些Web頁面進(jìn)行及時、完整的采集,能夠獲取到大量的用戶偏好、用戶行為信息,這是個性化推薦、用戶行為研究和應(yīng)用的關(guān)鍵基礎(chǔ)。例如目前對各種電子商務(wù)網(wǎng)站產(chǎn)品購買評論的自動采集、校園BBS頁面采集等都屬于這種類型。

(5)學(xué)術(shù)論文采集

學(xué)術(shù)爬蟲專門從互聯(lián)網(wǎng)中爬行公開的學(xué)術(shù)論文,是構(gòu)建學(xué)術(shù)搜索系統(tǒng)的關(guān)鍵基礎(chǔ)。目前國內(nèi)外有許多類似的搜索,例如 Google Scholar、Microsoft Academic Search、CiteSeerX以及百度學(xué)術(shù)等。此類爬蟲專門獲取PDF、Word、PostScript以及壓縮文檔。

(6)離線瀏覽

離線瀏覽允許用戶設(shè)置若干個網(wǎng)站,將頁面從服務(wù)器下載到用戶硬盤里,從而可以在不連接互聯(lián)網(wǎng)的情況下進(jìn)行Web瀏覽。實現(xiàn)這種功能的是離線瀏覽器,典型的離線瀏覽器包括Offline Browser、WebZIP、WebCopier 等。它們的核心技術(shù)就是爬蟲技術(shù),只是在執(zhí)行時離線瀏覽器需要限定爬行的范圍,即所需要爬行的網(wǎng)站列表,以免爬蟲漫無邊際地沿著頁面超鏈接下載其他網(wǎng)站的頁面內(nèi)容。

4.2監(jiān)測型爬蟲

另一類應(yīng)用是監(jiān)測型爬蟲,這類爬蟲不是以采集信息為主要目標(biāo),并非要采集盡可能多的信息,而是利用爬蟲在內(nèi)容采集和分析方面的能力對服務(wù)器的信息內(nèi)容進(jìn)行監(jiān)測,因此對爬蟲和服務(wù)器的交互能力提出了更多要求。其典型的應(yīng)用包括應(yīng)用安全監(jiān)測和內(nèi)容安全監(jiān)測。

(1)應(yīng)用安全監(jiān)測

應(yīng)用層安全是網(wǎng)絡(luò)信息安全的重要問題之一,這類安全與具體應(yīng)用有密切關(guān)系,而隨著部署在互聯(lián)網(wǎng)的應(yīng)用越來越多,應(yīng)用安全問題變得愈發(fā)突出。作為互聯(lián)網(wǎng)應(yīng)用的主流客戶端,瀏覽器需要人為的點擊和數(shù)據(jù)輸入,并且所有的執(zhí)行可能會對宿主計算機(jī)產(chǎn)生安全威脅,因此在應(yīng)用安全監(jiān)測方面的效率和及時性會受到很大影響。基于網(wǎng)絡(luò)爬蟲技術(shù),則可以在很大程度上改變這種情況。網(wǎng)頁掛馬的監(jiān)測就是在爬蟲獲取頁面后對頁面中所包含的動態(tài)腳本進(jìn)行特征分析。SQL注入是另一種常見的應(yīng)用安全問題,可以通過爬蟲技術(shù)向所要監(jiān)測的Web服務(wù)器發(fā)起查詢命令,并根據(jù)返回結(jié)果進(jìn)行安全判斷。

(2)內(nèi)容安全監(jiān)測

內(nèi)容安全是網(wǎng)絡(luò)信息安全的最高層次,敏感信息、泄密信息等的監(jiān)測需要從內(nèi)容層面上分析其安全屬性,通常這類信息的監(jiān)測需要在當(dāng)事人不知情的情況下進(jìn)行,因此采用自動化的爬蟲技術(shù),并結(jié)合適當(dāng)?shù)膬?nèi)容分析技術(shù),是合理的選擇。

可以預(yù)計,隨著互聯(lián)網(wǎng)大數(shù)據(jù)在各個行業(yè)得到越來越多的關(guān)注,運用爬蟲技術(shù)進(jìn)行數(shù)據(jù)獲取或監(jiān)測將變得更加普遍,應(yīng)用領(lǐng)域和場景也會越來越豐富,未來爬蟲的應(yīng)用將進(jìn)入一種廣義的采集階段,而非目前的側(cè)重于數(shù)據(jù)抓取。因此,非常有必要深入掌握網(wǎng)絡(luò)爬蟲的核心技術(shù)、實現(xiàn)方法及未來技術(shù)發(fā)展。

5爬蟲大數(shù)據(jù)采集的技術(shù)體系

5.1技術(shù)體系構(gòu)成

在許多開源系統(tǒng)的基礎(chǔ)上設(shè)計開發(fā)網(wǎng)絡(luò)爬蟲已經(jīng)變得簡單、可行,然而要針對具體爬行任務(wù)要求來提升爬蟲性能,需要進(jìn)一步了解爬蟲的技術(shù)原理。類似于軟件體系架構(gòu)原理,可以從靜態(tài)、動態(tài)等多個視角來理解網(wǎng)絡(luò)爬蟲的技術(shù)組成。

分層架構(gòu)是描述復(fù)雜軟件系統(tǒng)的一種常見方法,下圖是網(wǎng)絡(luò)爬蟲的層次架構(gòu)圖。從底層往上,依次可以分成4個層次,即網(wǎng)絡(luò)連接層、頁面采集層、頁面提取層和領(lǐng)域處理層。對采集到的數(shù)據(jù)的使用并不包含在這個體系中,因為這是具體應(yīng)用,并不屬于爬蟲采集。

image-20221009101530160

這4個層次的功能原理解釋如下。

(1)網(wǎng)絡(luò)連接層

主要由TCP Socket連接的建立、數(shù)據(jù)傳輸以及連接管理組成。由于目前Web服務(wù)器使用的是HTTP1.1或HTTP2.0協(xié)議,支持TCP連接復(fù)用或連接的持久化,所以如果爬蟲利用這些特性,Socket連接的建立、斷開及URL請求和結(jié)果的接收需要按照一定的順序進(jìn)行。此外,在爬蟲執(zhí)行過程中可能需要重新連接Web服務(wù)器,為了減少域名到IP地址轉(zhuǎn)換的時間,爬蟲通常要支持優(yōu)化的DNS緩存。

(2)頁面采集層

主要包括對URL的處理,從中提取域名,并按照Robots規(guī)范決定URL的抓取許可,同時在面對眾多的爬行任務(wù)時需要按照一定的搜索策略來決定URL的抓取順序。在抓取頁面時,如果涉及動態(tài)頁面,可能需要考慮在爬蟲中實現(xiàn) Session 機(jī)制。最終的URL命令及結(jié)果是通過 HTTP協(xié)議數(shù)據(jù)包發(fā)送的,在頭部信息中可以攜帶Cookie 信息。

(3)頁面提取層

該層完成了HTML文本信息的處理,主要是從中提取超鏈接,正文信息等內(nèi)容,因此需要按照相應(yīng)的HTML編碼規(guī)范進(jìn)行提取。同時,由于不同網(wǎng)站對Web頁面信息的編碼方式并不完全相同,例如 utf-8、unicode、gbk 等,在解析文本信息時需要考慮頁面的編碼方式。當(dāng)然目前有很多的開源框架支持頁面解析,包括1xml、BeautifulSoup等,設(shè)計人員需要掌握一些相應(yīng)的規(guī)范,例如XPath。

(4)領(lǐng)域處理層

一些特定類型爬蟲需要完成的功能,對于普通爬蟲而言,該層并不需要。領(lǐng)域處理主要有主題爬蟲、Deep Web爬蟲,因此需要一定的文本分析技術(shù)來支持,包括文本分詞、主題建模等。對Web頁面的安全監(jiān)測也屬于領(lǐng)域處理。
從網(wǎng)絡(luò)爬蟲應(yīng)用的角度看,在具體應(yīng)用領(lǐng)域,爬蟲的類型有很多種,包括普通爬蟲、主題爬蟲、Deep Web 爬蟲等,頁面提取層、頁面采集層和網(wǎng)絡(luò)連接層技術(shù)是這些爬蟲所共有的技術(shù)問題。

5.2相關(guān)技術(shù)

1.相關(guān)協(xié)議與規(guī)范

網(wǎng)絡(luò)爬蟲是一種客戶端技術(shù),它不能離開服務(wù)端獨立工作,而服務(wù)端是由眾多分布在互聯(lián)網(wǎng)上的Web服務(wù)器組成。在這樣的環(huán)境下爬蟲要從不同的配置、不同Web軟件的服務(wù)器上采集頁面信息,就需要按照一定的協(xié)議或規(guī)范來完成交互過程。在爬蟲技術(shù)實現(xiàn)時需要遵守這些協(xié)議或規(guī)范。

1)TCP協(xié)議

TCP協(xié)議是網(wǎng)絡(luò)爬蟲的底層協(xié)議,當(dāng)爬蟲與Web服務(wù)器建立連接、傳輸數(shù)據(jù)時都是以該協(xié)議為基礎(chǔ)。在技術(shù)實現(xiàn)上具體表現(xiàn)為Socket編程技術(shù)。各種語言都提供了對此的支持,例如Java提供InetAddress類,可以完成對域名與IP之間的正向、逆向解析。在Python 中則有dnspython這個DNS工具包,利用其查詢功能可以實現(xiàn)DNS的服務(wù)監(jiān)控及解析結(jié)果的校驗。不管哪種語言或開發(fā)平臺,DNS的解析一般都是調(diào)用系統(tǒng)自帶的API,通常是Socket 的getaddrinfo()函數(shù)。

2)HTTP協(xié)議

HTTP協(xié)議是一種應(yīng)用層協(xié)議,用于超文本傳輸。它規(guī)定了在TCP連接上向Web服務(wù)器請求頁面以及服務(wù)器向爬蟲響應(yīng)頁面數(shù)據(jù)的方式和數(shù)據(jù)格式。爬蟲實現(xiàn)時,對HTTP協(xié)議的依賴比較大,目前Web服務(wù)器使用的HTTP協(xié)議版本主要是HTTP 1.0和HTTP 1.1,而最新的版本是HTTP2.0。這些協(xié)議在功能上有一定差異,但也有很多共同的地方。在設(shè)計爬蟲程序時需要充分了解HTTP協(xié)議。

3)Robots協(xié)議
Robots 協(xié)議也稱為爬蟲協(xié)議,其全稱是“網(wǎng)絡(luò)爬蟲排除協(xié)議”(Robots Exclusion Protocol)。==該協(xié)議指明了哪些頁面可以抓取,哪些頁面不能抓取,以及抓取動作的時間、延時、頻次限定等。==該協(xié)議最早是針對搜索引擎爬蟲,目前在各種爬蟲中都可適用。Robots協(xié)議只代表了一種契約,并不是一種需要強(qiáng)制實施的協(xié)議。爬蟲遵守這一規(guī)則,能夠保證互聯(lián)網(wǎng)數(shù)據(jù)采集的規(guī)范化,有利于行業(yè)的健康發(fā)展。Robots協(xié)議的詳細(xì)介紹可見“http://www.robotstxt.org/robotstxt.html”。

4)Cookie 規(guī)范

Cookie 是指某些網(wǎng)站為了辨別用戶身份、進(jìn)行Session 跟蹤而儲存在用戶本地設(shè)備上的數(shù)據(jù)。通過Cookie可以將用戶在服務(wù)端的相關(guān)信息保存在本地,這些信息通常是用戶名、口令、地區(qū)標(biāo)識等,這些信息會由瀏覽器自動讀出,并通過HTTP協(xié)議發(fā)送到服務(wù)端。在 RFC 6265(http://www.rfc-editor.org/rfc/rfc6265.txt)規(guī)范中具體規(guī)定了Cookie 的數(shù)據(jù)含義、格式和使用方法。

5)網(wǎng)頁編碼規(guī)范

網(wǎng)頁編碼是指對網(wǎng)頁中的字符采用的編碼方式。由于一個網(wǎng)頁可能被來自世界各地的訪客訪問,而每個國家的語言并不完全相同,所以為了使網(wǎng)頁內(nèi)容能正常顯示在訪客的瀏覽器上,需要有一套共同的約定來表明頁面中字符的提取識別方法。目前常見的網(wǎng)頁字符編碼主要有 unicode、utf-8、gbk、gb2312等,其中 utf-8為國際化編碼,在各國各地區(qū)的網(wǎng)站中都很常見,是最通用的字符編碼。爬蟲在解析頁面內(nèi)容時就需要識別頁面的編碼方式。

6)HTML語言規(guī)范

HTML(Hyper Text Markup Language,超文本標(biāo)記語言)是一種用來描述網(wǎng)頁的語言,它規(guī)定了頁面的版式、字體、超鏈接、表格,甚至音樂、視頻、程序等非文字元素的表示方法。對爬蟲采集頁面的解析、對表格數(shù)據(jù)的提取、對正文的提取等都需要根據(jù) HTML定義的各種標(biāo)簽才能正確完成。目前最新的HTML版本為2017年12月萬維網(wǎng)聯(lián)盟(W3C)發(fā)布的HTML 5.2。

2.Web信息提取技術(shù)

對于網(wǎng)絡(luò)爬蟲采集頁面數(shù)據(jù)而言,最終的目標(biāo)是獲得頁面中的內(nèi)容,因此如何從HTML編碼的內(nèi)容提取所需要的信息是爬蟲采集Web 數(shù)據(jù)需要解決的問題。此外,由于爬蟲是依賴于超鏈接來獲得更多的爬行頁面,所以從Web頁面中提取超鏈接也是Web信息提取的技術(shù)問題。

總的來說,Web 信息提取包含兩大部分,即Web頁面中的超鏈接提取和Web內(nèi)容提取。對于前者而言,超鏈接在 Web頁面中具有相對比較有限的標(biāo)簽特征,因此通??梢允褂煤唵蔚恼齽t表達(dá)式之類的方法來提取。對于頁面中正文內(nèi)容的提取則要復(fù)雜一些。由于不同頁面的正文位置并不相同,并且網(wǎng)站也會經(jīng)常改版,所以為了爬蟲解析 Web頁面的程序能夠具備一定的靈活性和適應(yīng)性,需要引入一定的技術(shù)手段來減輕這種變化所需要的程序維護(hù)工作。其常用的方法是將Web頁面轉(zhuǎn)換成為一棵樹,然后按照一定的規(guī)則從樹中獲得所需要的信息。

目前,在Python 中已經(jīng)有很多種開源庫可以用來實現(xiàn)基于樹結(jié)構(gòu)的信息提取,并且有靈活的策略可以配置。這些開源庫主要有html. parser、lxml、html51ib、BeautifulSoup 以及 PyQuery等。這些庫各有各的優(yōu)缺點,開發(fā)人員在實際應(yīng)用中可以選擇合適的方法。

一些高級的方法試圖使爬蟲提取Web信息有更好的適應(yīng)能力,一種途徑是引入統(tǒng)計思想,對頁面中正文部分的各種特征進(jìn)行統(tǒng)計,在大量樣本特征計算的基礎(chǔ)上設(shè)置合適的特征值范圍,從而為自動提取提供依據(jù)。

3.典型應(yīng)用中的數(shù)據(jù)獲取技術(shù)

網(wǎng)絡(luò)爬蟲有多種不同的采集需求,Deep Web和主題獲取是其中的兩種典型代表,在實際中也會經(jīng)常用到。這其中所涉及的技術(shù)與普通爬蟲并不一樣,因此開發(fā)人員通常需要全面掌握。

能夠進(jìn)行主題獲取的爬蟲被稱為主題爬蟲,在技術(shù)手段上,其核心在于主題。圍繞主題的定義方法、主題相似度計算等關(guān)鍵問題,有一系列來自文本內(nèi)容分析的技術(shù)

可以使用,主要有文本預(yù)處理技術(shù)、主題表示、主題建模等。文本預(yù)處理技術(shù)包括詞匯的切分、停用詞過濾等,而主題建模則可以利用各種主題模型,例如PLSA、LDA、基于向量空間的主題表示模型以及簡單的布爾模型等。
Deep Web 采集的爬蟲目標(biāo)是獲得存儲在后臺數(shù)據(jù)庫中的數(shù)據(jù),屬于一種深度數(shù)據(jù)獲取,而普通爬蟲通常是一種面向表面的數(shù)據(jù)采集。既然是深度數(shù)據(jù)獲取,就需要對數(shù)據(jù)的采集接口有一定的處理能力,同時需要具備一定的輸入識別和自動填寫能力,因此需要一定的知識庫來支持。

4.網(wǎng)絡(luò)爬蟲的軟件技術(shù)

網(wǎng)絡(luò)爬蟲除了技術(shù)架構(gòu)中所列出來的技術(shù)外,另一個重要的問題是這些技術(shù)如何進(jìn)行協(xié)調(diào)合作,共同完成互聯(lián)網(wǎng)大數(shù)據(jù)的采集。這是通過網(wǎng)絡(luò)爬蟲的軟件技術(shù)來保證的,在技術(shù)實現(xiàn)時通常有多種不同的選擇。

1)多線程技術(shù)

從網(wǎng)絡(luò)爬蟲的技術(shù)體系看,對于某個頁面的采集,3個層次上的功能執(zhí)行具有先后順序,即必須先建立網(wǎng)絡(luò)連接,再進(jìn)行HTTP協(xié)議數(shù)據(jù)的發(fā)送和接收處理,最后根據(jù)爬蟲采集需求對接收到的頁面數(shù)據(jù)進(jìn)行解析和內(nèi)容提取。如果是主題爬蟲,還需要進(jìn)行一些內(nèi)容分析。

爬蟲通常并不針對某個頁面,而是根據(jù)超鏈接抓取多個頁面。這些頁面的抓取過程之間相互獨立,因此在實現(xiàn)時可以使用多線程技術(shù)。通常的做法是設(shè)置若干線程分別進(jìn)行頁面內(nèi)容提取、URL處理、HTTP命令數(shù)據(jù)包構(gòu)建、響應(yīng)數(shù)據(jù)的接收以及建立網(wǎng)絡(luò)連接等。不同線程之間可以通過文件、共享內(nèi)存進(jìn)行數(shù)據(jù)交換。

2)單機(jī)系統(tǒng)

如果需要抓取的頁面數(shù)量不多,在爬蟲系統(tǒng)的技術(shù)實現(xiàn)上可以部署在一臺機(jī)器上,即單機(jī)系統(tǒng)模式。在這個模式下,線程的設(shè)置要考慮到機(jī)器的配置和網(wǎng)絡(luò)帶寬。如果配置高,則線程數(shù)量可以多一些;如果網(wǎng)絡(luò)帶寬大,則處理網(wǎng)絡(luò)連接的線程可以多一些。具體線程數(shù)量需要在實際環(huán)境下進(jìn)行調(diào)整。

3)分布式系統(tǒng)

如果需要抓取的頁面數(shù)量很多,以至于爬蟲很難在用戶預(yù)期的時間內(nèi)完成頁面數(shù)據(jù)的采集,在這種情況下就需要進(jìn)行分布式處理。在分布式爬蟲系統(tǒng)設(shè)計中,一般將爬行任務(wù)(即URL列表)分配給若干個不同的計算節(jié)點,而設(shè)置統(tǒng)一的協(xié)調(diào)中心來

Python爬蟲大數(shù)據(jù)采集與億倆
管理整個分布式系統(tǒng)所要爬行的URL列表。在分布式系統(tǒng)中,每個節(jié)點在處理爬行
任務(wù)時仍可以采用多線程結(jié)構(gòu)。
盡管爬蟲在軟件技術(shù)方面有多種不同的選擇,但爬蟲只是一個客戶端程序,為了有效提高整個爬蟲系統(tǒng)采集數(shù)據(jù)的性能,顯然不能忽略服務(wù)器端的承受和響應(yīng)能力。對于爬蟲系統(tǒng)而言,它是根據(jù)所要爬行的URL集合來執(zhí)行任務(wù)的。如果在短時間內(nèi),爬蟲端多個線程或分布節(jié)點同時連接到同一個服務(wù)器進(jìn)行頁面采集,顯然這些大量的連接請求會在服務(wù)器端產(chǎn)生較大的資源占用,從而影響服務(wù)器的正常運行,最終導(dǎo)致爬蟲系統(tǒng)采集數(shù)據(jù)的效率降低。因此,在多線程、分布式爬蟲設(shè)計時應(yīng)當(dāng)進(jìn)行合理的爬行任務(wù)分配,即設(shè)計合理的爬行策略,避免這種情況出現(xiàn)。

5.3技術(shù)評價方法

爬蟲技術(shù)是一種典型的Web頁面數(shù)據(jù)采集方法,得到了許多技術(shù)人員的關(guān)注,因此目前不斷有新的爬蟲技術(shù)或開源框架被提出來。在這種情況下需要有一套比較完整的爬蟲技術(shù)評價方法,以便于進(jìn)行比較、權(quán)衡和選擇。歸納起來,網(wǎng)絡(luò)爬蟲技術(shù)的評價方法可以從以下10個方面進(jìn)行。

1.是否遵守Robots 協(xié)議

在Web 頁面抓取的過程中,是否進(jìn)行了Robots許可公告的判斷,是否根據(jù)許可規(guī)范來確定爬蟲的抓取權(quán)限。

2.友好爬蟲請求技術(shù)

友好爬蟲以不對Web 服務(wù)器造成拒絕服務(wù)攻擊為底線,因此友好爬蟲應(yīng)當(dāng)具備請求間隔可調(diào)整、符合 Web服務(wù)器關(guān)于訪問高峰期的規(guī)定,同時應(yīng)當(dāng)根據(jù)服務(wù)器返回的狀態(tài)碼及時調(diào)整自己的請求強(qiáng)度。

3.高效采集技術(shù)

高效是指在一定的時間和網(wǎng)絡(luò)帶寬限定下爬蟲采集到盡可能多的Web頁面。這其中所涉及的爬蟲核心技術(shù)較多,包括站內(nèi)頁面的遍歷策略、站外頁面的遍歷策略、URL去重技術(shù)等。對于 Deep Web來說,還涉及如何降低查詢次數(shù)的技術(shù)問題。

4.對增量式采集的支持

在每次運行時,爬蟲是否能夠判斷哪些頁面內(nèi)容已經(jīng)更新,并采集自上次采集以來新出現(xiàn)的內(nèi)容,此即為增量式采集技術(shù)。

5.對動態(tài)頁面的支持

動態(tài)頁面的實現(xiàn)可以通過URL傳遞參數(shù)、通過Cookie傳遞參數(shù)以及使用Ajax等技術(shù)來實現(xiàn),不同的爬蟲技術(shù)對這些技術(shù)的支持程度有所不同。

6.頁面編碼與語言處理能力

普通型的網(wǎng)絡(luò)爬蟲根據(jù)超鏈接在Web空間上跳轉(zhuǎn),很可能要面對多種不同頁面、不同語言的Web頁面,好的爬蟲應(yīng)當(dāng)能夠處理這些差異可能造成的存儲信息亂碼問題。

7.主題相關(guān)度評估

對于主題爬蟲而言,要衡量采集到的頁面與事先設(shè)定的主題的相關(guān)度,可以進(jìn)一步從主題信息的召回率和準(zhǔn)確率兩個指標(biāo)來衡量。

8.對分布式架構(gòu)的支持

在面對海量Web信息的采集任務(wù)時,通常需要爬蟲具備分布式架構(gòu),以協(xié)調(diào)多臺計算機(jī)高效完成采集任務(wù)。

9.可配置線程技術(shù)

爬蟲需要完成 Web 服務(wù)器連接建立、URL命令發(fā)送、Web頁面內(nèi)容采集、URL過濾以及爬行策略管理等任務(wù),這些任務(wù)可以按照一定方式同步進(jìn)行,從而提升采集效率。是否可以根據(jù)計算機(jī)的配置情況來設(shè)定線程數(shù)量是一個必要的技術(shù)。

10.容錯能力

在一般情況下,爬蟲采集時需要面對Web服務(wù)器、通信網(wǎng)絡(luò)等多方面的異常,健壯的爬蟲應(yīng)當(dāng)具有一定的容錯能力,以避免各個環(huán)節(jié)上的錯誤而導(dǎo)致爬蟲系統(tǒng)崩潰。

6爬蟲大數(shù)據(jù)采集與挖掘的合規(guī)性

隨著網(wǎng)絡(luò)爬蟲技術(shù)應(yīng)用的普及,網(wǎng)絡(luò)爬蟲的應(yīng)用場景越來越多,但是一些不合理使用網(wǎng)絡(luò)爬蟲技術(shù)進(jìn)行大數(shù)據(jù)采集的案例也不斷出現(xiàn),甚至導(dǎo)致了相應(yīng)的法律問題。因此,網(wǎng)絡(luò)爬蟲能以什么方式抓取什么數(shù)據(jù)這個問題是值得考慮的,其他類似問題還包括,什么樣的數(shù)據(jù)可以存儲在本地、什么樣的數(shù)據(jù)可以共享或出售給他人,這些統(tǒng)稱為大數(shù)據(jù)技術(shù)及應(yīng)用的合規(guī)性。

6.1.數(shù)據(jù)抓取權(quán)限

從這個方面看,爬蟲可以抓取具有訪問權(quán)限的數(shù)據(jù),這應(yīng)該是其邊界之一。訪問權(quán)限可以從數(shù)據(jù)是否公開、頁面是否許可來判斷。爬蟲對公開的數(shù)據(jù)當(dāng)然具備抓取權(quán)限,公開或不公開的判斷依據(jù)是否需要以一定用戶身份登錄后才能看到數(shù)據(jù),并且以其他用戶身份登錄后是看不到這些的。在各類不公開數(shù)據(jù)的采集中,容易引起糾紛的是用戶個人信息,包括個人身份信息、行蹤軌跡、聯(lián)系方式等。在采集這類數(shù)據(jù)前,爬蟲應(yīng)當(dāng)獲得用戶授權(quán)。

未公開的網(wǎng)絡(luò)數(shù)據(jù),爬蟲程序無權(quán)獲取,可能會被認(rèn)定為非法獲取計算機(jī)信息系統(tǒng)數(shù)據(jù)罪。在《中華人民共和國刑法》第二百八十五條提到非法獲取計算機(jī)信息系統(tǒng)數(shù)據(jù)罪,是指侵入國家事務(wù)、國防建設(shè)、尖端科學(xué)技術(shù)領(lǐng)域以外的計算機(jī)信息系統(tǒng)或者采用其他技術(shù)手段,獲取該計算機(jī)信息系統(tǒng)中存儲、處理或者傳輸?shù)臄?shù)據(jù)。這里“侵入”是指行為人采用破解密碼、盜取密碼、強(qiáng)行突破安全工具等方法,在沒有得到許可時違背計算機(jī)信息系統(tǒng)控制人或所有人意愿進(jìn)入其無權(quán)進(jìn)入的計算機(jī)信息系統(tǒng)中。典型的途徑是破解APP的加密算法或網(wǎng)絡(luò)交互協(xié)議、調(diào)用規(guī)則和參數(shù),從而爬蟲突破權(quán)限許可獲取數(shù)據(jù)。

抓取權(quán)限的另一個界定方法是Robots協(xié)議,如果網(wǎng)站有設(shè)置robots.txt文件,則爬蟲應(yīng)當(dāng)依據(jù)該文件決定某個特定的URL是否許可。

6.2.爬蟲的訪問方式

這是指爬蟲訪問服務(wù)器的方式,其邊界為爬蟲是否對服務(wù)器的正常運行造成影響。如果網(wǎng)絡(luò)爬蟲在短時間內(nèi)頻繁訪問 Web 服務(wù)器,通常是采用分布式、并行抓取等技術(shù),從而導(dǎo)致服務(wù)器不能正常運行,其客戶訪問變得很慢甚至無法響應(yīng)。如果突破這個邊界,可能會涉及破壞計算機(jī)信息系統(tǒng)罪,目前也有一些爬蟲抓取被法院按這種類型處理。
與訪問方式有關(guān)的另一個邊界仍然是Robots協(xié)議,在該協(xié)議中定義了抓取延時、抓取時間段等參數(shù),如果爬蟲沒有遵守這些約定,則可能導(dǎo)致服務(wù)器不能正常運行。不過,據(jù)觀察,許多網(wǎng)站并沒有充分運用Robots協(xié)議來定義這些參數(shù)。

6.3.數(shù)據(jù)量與數(shù)據(jù)的使用

數(shù)據(jù)使用邊界是指抓取的數(shù)據(jù)是否用于商業(yè)用途、是否涉及版權(quán)限定。以前發(fā)生的一個例子是,百度公司通過爬蟲技術(shù)從大眾點評網(wǎng)等網(wǎng)站獲取信息,并將抓取的信息直接提供給網(wǎng)絡(luò)用戶(展示),最終被上海知識產(chǎn)權(quán)法院認(rèn)定為不正當(dāng)競爭行為。雖然百度公司的搜索引擎抓取涉案信息并不違反Robots協(xié)議,但是將大量數(shù)據(jù)用于商業(yè)用途或展示傳播,很可能會涉及不正當(dāng)競爭,屬于利益沖突。此外,根據(jù)個人信息安全規(guī)范,涉及個人信息的數(shù)據(jù)不應(yīng)該存儲在本地或進(jìn)行融合挖掘。

總的看來,互聯(lián)網(wǎng)公開資源爬取并不違法,網(wǎng)絡(luò)爬蟲作為互聯(lián)網(wǎng)大數(shù)據(jù)采集的技術(shù)手段,本身具有中立性,而抓取沒有權(quán)限、沒有授權(quán)的數(shù)據(jù),對服務(wù)器正常運行產(chǎn)生影響,以及抓取后的數(shù)據(jù)用于商業(yè)用途、未經(jīng)授權(quán)公開展示,應(yīng)該是突破了爬蟲大數(shù)據(jù)采集的邊界。與爬蟲大數(shù)據(jù)采集相關(guān)的規(guī)范和法律條款主要出現(xiàn)在《中華人民共和國網(wǎng)絡(luò)安全法》《計算機(jī)信息系統(tǒng)安全保護(hù)條例》《個人信息安全規(guī)范》《數(shù)據(jù)安全管理辦法(征求意見稿)》和《反不正當(dāng)競爭法》中。在設(shè)計爬蟲大數(shù)據(jù)采集挖掘系統(tǒng)之前建議閱讀這些規(guī)范和法律條款,設(shè)計方案時要對合規(guī)性、采集性能進(jìn)行適當(dāng)?shù)钠胶?#xff0c;不能為了提高采集性能而忽視合規(guī)性。

7爬蟲大數(shù)據(jù)采集技術(shù)的展望

隨著互聯(lián)網(wǎng)技術(shù)、大數(shù)據(jù)應(yīng)用等相關(guān)技術(shù)的發(fā)展,網(wǎng)絡(luò)爬蟲技術(shù)作為互聯(lián)網(wǎng)大數(shù)據(jù)采集的主要途徑,必然會不斷發(fā)展變化。對于互聯(lián)網(wǎng)大數(shù)據(jù)技術(shù)研究及應(yīng)用開發(fā)的人員來說,了解這種發(fā)展趨勢,把握技術(shù)發(fā)展方向,是非常有必要的。

網(wǎng)絡(luò)爬蟲離不開技術(shù)、應(yīng)用和行業(yè)規(guī)范,因此可以從這3個大的方面來分析網(wǎng)絡(luò)爬蟲技術(shù)發(fā)展的推動力和發(fā)展趨勢。網(wǎng)絡(luò)爬蟲涉及多種不同的技術(shù),包括網(wǎng)絡(luò)協(xié)議、HTML編碼、網(wǎng)絡(luò)架構(gòu)等,這些技術(shù)本身也在不斷的演進(jìn)。技術(shù)的發(fā)展雖然是建立在現(xiàn)有技術(shù)的基礎(chǔ)上,但并非都是向下兼容,也會不斷地產(chǎn)生新的思路,以這些技術(shù)為基礎(chǔ)的網(wǎng)絡(luò)爬蟲自然也要隨著技術(shù)的發(fā)展而發(fā)展。

下面按照這個思路對網(wǎng)絡(luò)爬蟲的大數(shù)據(jù)采集技術(shù)的今后發(fā)展進(jìn)行分析和敘述,主要體現(xiàn)在以下6個方面。

1.HTTP 協(xié)議的升級

自1999年HTTP 1.1發(fā)布后,直到2015年才發(fā)布了新的版本HTTP 2.0,它被看作是下一代互聯(lián)網(wǎng)通信協(xié)議,但是目前大部分尚未真正實施。將來隨著支持HTTP 2.0協(xié)議的網(wǎng)站的數(shù)量增多,網(wǎng)絡(luò)爬蟲的協(xié)議解析和數(shù)據(jù)包提取技術(shù)必然會有相應(yīng)的發(fā)展。
HTTP 2.0在與HTTP 1.1語義兼容的基礎(chǔ)上,在性能上實現(xiàn)了大幅提升。該版本采用二進(jìn)制分幀層,將進(jìn)行傳輸?shù)南⒎指畛筛〉南⒑蛶?#xff0c;并對它們采用二進(jìn)制格式的編碼。因此,HTTP 2.0允許客戶端與服務(wù)器同時通過同一個連接發(fā)送多重請求/響應(yīng)消息,實現(xiàn)多路復(fù)用。HTTP 2.0也允許服務(wù)器對一個客戶端請求發(fā)送多個響應(yīng),即服務(wù)器推送。這些特性都是現(xiàn)有 HTTP 1.1、HTTP 1.0所不具備的,基于新的HTTP協(xié)議,爬蟲技術(shù)就需要有相應(yīng)的發(fā)展。

國際互聯(lián)網(wǎng)工程任務(wù)組(The Internet Engineering Task Force,IETF)的 QUIC 工作小組創(chuàng)造了 QUIC 傳輸協(xié)議。QUIC(Quick UDP Internet Connection)是一個使用UDP來替代 TCP的協(xié)議,有望成為新一代HTTP協(xié)議,即HTTP3的核心基礎(chǔ)。其目標(biāo)是給Web瀏覽提速,當(dāng)然爬蟲也可以從中獲益。

2.IPv6的廣泛應(yīng)用

IPv6是 IETF(國際互聯(lián)網(wǎng)工程任務(wù)組)設(shè)計的用于替代現(xiàn)行版本IP協(xié)議(IPv4)的下一代IP協(xié)議。隨著IPv4 地址耗盡,互聯(lián)網(wǎng)將會全面部署IPv6。IPv4最多可以分配42億個IP地址,而IPv6可提供2的128次方個地址,因此沒有了地址編碼的限制,互聯(lián)網(wǎng)應(yīng)用與現(xiàn)在相比一定會有很大的飛躍。

IPv6對爬蟲技術(shù)發(fā)展的推動主要在于兩個方面。一方面,由于HTTP數(shù)據(jù)包最終還是通過IP層進(jìn)行傳送,所以在IPv6下要求爬蟲中更底層的網(wǎng)絡(luò)數(shù)據(jù)包分析和數(shù)據(jù)提取技術(shù)相應(yīng)的發(fā)展;另一方面,IPv6在安全性方面有很多增強(qiáng),對爬蟲與Web服務(wù)器的交互技術(shù)提出新的要求。

3. HTML語言的發(fā)展

HTML 語言規(guī)范不斷升級變化,當(dāng)前較新的版本是HTML5。相比于以前版本,HTML5添加了很多新元素及功能,并刪除了一些舊元素。HTML5提供了新的元素來創(chuàng)建更好的頁面結(jié)構(gòu),元素也可擁有事件屬性,這些屬性在瀏覽器中觸發(fā)行為,改變頁面的動態(tài)性。從程序設(shè)計角度看,除了原先的DOM接口以外,HTML5增加了更多API,實現(xiàn)定時媒體回放、離線數(shù)據(jù)庫存儲等功能。

隨著今后新型互聯(lián)網(wǎng)不斷出現(xiàn),可以預(yù)見HTML版本將會不斷升級,因此為了更好地處理 Web頁面內(nèi)容,網(wǎng)絡(luò)爬蟲在Web頁面解析、內(nèi)容提取方面的技術(shù)也將不斷發(fā)展。

4.新型網(wǎng)站架構(gòu)的出現(xiàn)

Web 服務(wù)應(yīng)用架構(gòu)從最早的Client/Server發(fā)展到集群、負(fù)載均衡、虛擬主機(jī)等技術(shù),每次新技術(shù)的出現(xiàn)都是Web服務(wù)應(yīng)用架構(gòu)試圖解決高可用性、高并發(fā)、可維護(hù)等實際問題。云計算、區(qū)塊鏈等新的計算和處理架構(gòu)必將使得Web應(yīng)用架構(gòu)發(fā)生變化,從而使得網(wǎng)絡(luò)爬蟲在技術(shù)上也需要不斷更新,以適應(yīng)服務(wù)端架構(gòu)特征。

5. Web應(yīng)用的推動

Web應(yīng)用中的互聯(lián)網(wǎng)大數(shù)據(jù)朝著多樣化、流動性、隱匿性等方面發(fā)展,對爬蟲信息采集提出了新的要求。目前有3種典型的 Web,即 Surface Web、Deep Web、Dark Web。當(dāng)前爬蟲主要針對表面網(wǎng)絡(luò)(Surface Web)和深網(wǎng)(Deep Web)。盡管如此,將來隨著物聯(lián)網(wǎng)等新應(yīng)用的普及,數(shù)量巨大的Deep Web 數(shù)據(jù)或許對當(dāng)前的動態(tài)網(wǎng)頁訪問提出新的需求,例如實時性等,因此相應(yīng)的新的軟件技術(shù)和架構(gòu)也會隨之出現(xiàn)。

另一方面,暗網(wǎng)(Dark Web)包含那些故意隱藏的信息和網(wǎng)站,并且無法通過人們每天使用的瀏覽器訪問,通常只能通過特殊的軟件和特定的URL進(jìn)入。隨著暗網(wǎng)的影響力越來越大,對暗網(wǎng)的監(jiān)管需求也很迫切??蛻舳巳绾闻c暗網(wǎng)高效交互并采集各類信息成為技術(shù)發(fā)展的前沿方向之一。

6.行業(yè)規(guī)范的推動

互聯(lián)網(wǎng)大數(shù)據(jù)采集所涉及的行業(yè)規(guī)范包括頁面訪問許可、訪問行為規(guī)約、數(shù)據(jù)權(quán)屬以及數(shù)據(jù)質(zhì)量等方面。
雖然目前的Robots協(xié)議規(guī)定了描述頁面訪問許可、訪問行為規(guī)約的方法,但是該協(xié)議并非是強(qiáng)制執(zhí)行的,導(dǎo)致很多爬蟲并不遵守服務(wù)方的公告。由此,爬蟲和服務(wù)方之間為了數(shù)據(jù)的采集與保護(hù)進(jìn)行了持續(xù)的博弈,最終導(dǎo)致雙方都要付出很大的代價。這種基于Robots 協(xié)議的頁面訪問許可和行為規(guī)約還有很大的改進(jìn)空間。另一方面,Robots 協(xié)議針對頁面進(jìn)行許可控制,對于Deep Web數(shù)據(jù)的訪問許可描述不夠靈活,因此需要發(fā)展細(xì)粒度的數(shù)據(jù)許可約定方法,從而進(jìn)一步影響爬蟲技術(shù)實現(xiàn)。

最后,隨著大數(shù)據(jù)交易市場的發(fā)展壯大,對數(shù)據(jù)權(quán)屬、數(shù)據(jù)所有權(quán)、數(shù)據(jù)質(zhì)量等管理問題的逐步明確,相關(guān)規(guī)范將會得到行業(yè)認(rèn)證,作為大數(shù)據(jù)采集的網(wǎng)絡(luò)爬蟲在技術(shù)處理上顯然也需要遵守這些相關(guān)約定。

http://m.aloenet.com.cn/news/28757.html

相關(guān)文章:

  • sqlite做網(wǎng)站下載優(yōu)化大師安裝桌面
  • 網(wǎng)站空間購買800seo運營工作內(nèi)容
  • 兩個wordpress文章同步seo教程百度網(wǎng)盤
  • 17. 整個網(wǎng)站建設(shè)中的關(guān)鍵是關(guān)鍵詞優(yōu)化和seo
  • 做異地送花網(wǎng)站愛站小工具圣經(jīng)
  • 蘇中建設(shè)南京區(qū)域公司上海網(wǎng)站營銷seo電話
  • 中文域名做的網(wǎng)站有哪些深圳優(yōu)化網(wǎng)站
  • 哪有專業(yè)做網(wǎng)站推廣優(yōu)化網(wǎng)站排名
  • 上海施工單位廣東企業(yè)網(wǎng)站seo報價
  • 東陵網(wǎng)站制作產(chǎn)品推廣策劃方案怎么做
  • 自己如何開自己的商城搜索引擎優(yōu)化是免費的嗎
  • 給網(wǎng)站做排名優(yōu)化學(xué)什么好處包就業(yè)的培訓(xùn)學(xué)校
  • 基于java開發(fā)網(wǎng)站開發(fā)網(wǎng)站關(guān)鍵詞提升
  • 企業(yè)商務(wù)網(wǎng)站的技術(shù)上海關(guān)鍵詞排名提升
  • 學(xué)校網(wǎng)站建設(shè)先進(jìn)個人榮譽(yù)長沙好的seo外包公司
  • 網(wǎng)站建設(shè)公司運營手機(jī)建站系統(tǒng)
  • jsp網(wǎng)站制作詳細(xì)教程站長工具流量統(tǒng)計
  • 廣州淘寶網(wǎng)站建設(shè)泰州百度關(guān)鍵詞優(yōu)化
  • 網(wǎng)站開發(fā)軟件系統(tǒng)教程seo推廣排名網(wǎng)站
  • 烽火臺網(wǎng)站游戲推廣一個月能拿多少錢
  • 可信網(wǎng)站身份驗證免費制作自己的網(wǎng)頁
  • 誰能幫我做網(wǎng)站網(wǎng)站引流推廣怎么做
  • 軟件生命周期七個階段天津百度網(wǎng)站排名優(yōu)化
  • 佛山網(wǎng)站建設(shè)哪家公司好怎么創(chuàng)建網(wǎng)站鏈接
  • 承接網(wǎng)站建設(shè)文案百度搜索關(guān)鍵詞統(tǒng)計
  • 網(wǎng)站維護(hù)會導(dǎo)致打不開網(wǎng)頁嗎?網(wǎng)絡(luò)推廣企劃
  • 哪些品牌網(wǎng)站做的好東莞seo托管
  • 做真香表情包的網(wǎng)站seo免費自學(xué)的網(wǎng)站
  • vs2019可以做網(wǎng)站嗎北京seo網(wǎng)站推廣
  • 網(wǎng)站301跳轉(zhuǎn)怎么做的百度seo灰色詞排名代發(fā)