精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
網(wǎng)絡(luò)爬蟲知識教你“爬”遍各種網(wǎng)絡(luò)

什么是網(wǎng)絡(luò)爬蟲?網(wǎng)絡(luò)爬蟲(Web crawler),是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本,它們被廣泛用于互聯(lián)網(wǎng)搜索引擎或其他類似網(wǎng)站,可以自動采集所有其能夠訪問到的頁面內(nèi)容,以獲取或更新這些網(wǎng)站的內(nèi)容和檢索方式。

內(nèi)容一般分為兩部分,非結(jié)構(gòu)化的文本,或結(jié)構(gòu)化的文本。


1. 關(guān)于非結(jié)構(gòu)化的數(shù)據(jù)

1.1 HTML文本(包含JavaScript代碼)

HTML文本基本上是傳統(tǒng)爬蟲過程中最常見的,也就是大多數(shù)時候會遇到的情況,例如抓取一個網(wǎng)頁,得到的是HTML,然后需要解析一些常見的元素,提取一些關(guān)鍵的信息。HTML其實理應(yīng)屬于結(jié)構(gòu)化的文本組織,但是又因為一般我們需要的關(guān)鍵信息并非直接可以得到,需要進行對HTML的解析查找,甚至一些字符串操作才能得到,所以還是歸類于非結(jié)構(gòu)化的數(shù)據(jù)處理中。

常見解析方式如下:

·CSS選擇器

現(xiàn)在的網(wǎng)頁樣式比較多,所以一般的網(wǎng)頁都會有一些CSS的定位,例如class,id等等,或者我們根據(jù)常見的節(jié)點路徑進行定位,例如騰訊首頁的財經(jīng)部分。


·XPATH

XPATH是一種頁面元素的路徑選擇方法,利用Chrome可以快速得到,如:


1.2 一段文本

一篇文章,或者一句話,我們的初衷是提取有效信息,所以如果是滯后處理,可以直接存儲,如果是需要實時提取有用信息,常見的處理方式如下:

分詞

根據(jù)抓取的網(wǎng)站類型,使用不同詞庫,進行基本的分詞,然后變成詞頻統(tǒng)計,類似于向量的表示,詞為方向,詞頻為長度。

NLP

自然語言處理,進行語義分析,用結(jié)果表示,例如正負面等。


2. 關(guān)于結(jié)構(gòu)化的數(shù)據(jù)

結(jié)構(gòu)化的數(shù)據(jù)是最好處理,一般都是類似JSON格式的字符串,直接解析JSON數(shù)據(jù)就可以了,提取JSON的關(guān)鍵字段即可。


3、爬蟲爬取網(wǎng)頁的基本步驟

1) 人工給定一個URL作為入口,從這里開始爬取。

萬維網(wǎng)的可視圖呈蝴蝶型,網(wǎng)絡(luò)爬蟲一般從蝴蝶型左邊結(jié)構(gòu)出發(fā)。這里有一些門戶網(wǎng)站的主頁,而門戶網(wǎng)站中包含大量有價值的鏈接。

2) 用運行隊列和完成隊列來保存不同狀態(tài)的鏈接。

對于大型數(shù)據(jù)量而言,內(nèi)存中的隊列是不夠的,通常采用數(shù)據(jù)庫模擬隊列。用這種方法既可以進行海量的數(shù)據(jù)抓取,還可以擁有斷點續(xù)抓功能。

3) 線程從運行隊列讀取隊首URL,如果存在,則繼續(xù)執(zhí)行,反之則停止爬取。

4) 每處理完一個URL,將其放入完成隊列,防止重復(fù)訪問。

5) 每次抓取網(wǎng)頁之后分析其中的URL(URL是字符串形式,功能類似指針),將經(jīng)過過濾的合法鏈接寫入運行隊列,等待提取。

6) 重復(fù)步驟 3)、4)、5)。

 


4、主過程組成

在網(wǎng)絡(luò)爬蟲的系統(tǒng)框架中,主過程由控制器,解析器,資源庫三部分組成。控制器的主要工作是負責給多線程中的各個爬蟲線程分配工作任務(wù)。解析器的主要工作是下載網(wǎng)頁,進行頁面的處理,主要是將一些JS腳本標簽、CSS代碼內(nèi)容、空格字符、HTML標簽等內(nèi)容處理掉,爬蟲的基本工作是由解析器完成。資源庫是用來存放下載到的網(wǎng)頁資源,一般都采用大型的數(shù)據(jù)庫存儲,如Oracle數(shù)據(jù)庫,并對其建立索引。

【控制器】

控制器是網(wǎng)絡(luò)爬蟲的中央控制器,它主要是負責根據(jù)系統(tǒng)傳過來的URL鏈接,分配一線程,然后啟動線程調(diào)用爬蟲爬取網(wǎng)頁的過程。

【解析器】

解析器是負責網(wǎng)絡(luò)爬蟲的主要部分,其負責的工作主要有:下載網(wǎng)頁的功能,對網(wǎng)頁的文本進行處理,如過濾功能,抽取特殊HTML標簽的功能,分析數(shù)據(jù)功能。

【資源庫】

主要是用來存儲網(wǎng)頁中下載下來的數(shù)據(jù)記錄的容器,并提供生成索引的目標源。中大型的數(shù)據(jù)庫產(chǎn)品有:Oracle、Sql Server等。


5、補充:

開源爬蟲小知識

﹡DataparkSearch是一個在GNU GPL許可下發(fā)布的爬蟲搜索引擎。

﹡GNU Wget是一個在GPL許可下,使用C語言編寫的命令行式的爬蟲。它主要用于網(wǎng)絡(luò)服務(wù)器和FTP服務(wù)器的﹡鏡像。

﹡Heritrix是一個互聯(lián)網(wǎng)檔案館級的爬蟲,設(shè)計的目標為對大型網(wǎng)絡(luò)的大部分內(nèi)容的定期存檔快照,是使用java編寫的。

﹡HTTrack用網(wǎng)絡(luò)爬蟲創(chuàng)建網(wǎng)絡(luò)站點鏡像,以便離線觀看。它使用C語言編寫,在GPL許可下發(fā)行。

﹡ICDL Crawler是一個用C++編寫,跨平臺的網(wǎng)絡(luò)爬蟲。它僅僅使用空閑的CPU資源,在ICDL標準上抓取整個站點。

﹡JSpider是一個在GPL許可下發(fā)行的,高度可配置的,可定制的網(wǎng)絡(luò)爬蟲引擎。

﹡LLarbin由Sebastien Ailleret開發(fā);

﹡Methabot是一個使用C語言編寫的高速優(yōu)化的,使用命令行方式運行的,在2-clause BSD許可下發(fā)布的網(wǎng)頁檢索器。它的主要的特性是高可配置性,模塊化;它檢索的目標可以是本地文件系統(tǒng),HTTP或者FTP。

﹡Nutch是一個使用java編寫,在Apache許可下發(fā)行的爬蟲。它可以用來連接Lucene的全文檢索套件;

﹡Pavuk是一個在GPL許可下發(fā)行的,使用命令行的WEB站點鏡像工具,可以選擇使用X11的圖形界面。與wget和httprack相比,他有一系列先進的特性,如以正則表達式為基礎(chǔ)的文件過濾規(guī)則和文件創(chuàng)建規(guī)則。

﹡WebSPHINX(Miller and Bharat, 1998)是一個由java類庫構(gòu)成的,基于文本的搜索引擎。它使用多線程進行網(wǎng)頁檢索,html解析,擁有一個圖形用戶界面用來設(shè)置開始的種子URL和抽取下載的數(shù)據(jù);

﹡WIRE-網(wǎng)絡(luò)信息檢索環(huán)境(Baeza-Yates 和 Castillo, 2002)是一個使用C++編寫,在GPL許可下發(fā)行的爬蟲,內(nèi)置了幾種頁面下載安排的策略,還有一個生成報告和統(tǒng)計資料的模塊,所以,它主要用于網(wǎng)絡(luò)特征的描述;

﹡Ruya是一個在廣度優(yōu)先方面表現(xiàn)優(yōu)秀,基于等級抓取的開放源代碼的網(wǎng)絡(luò)爬蟲。在英語和日語頁面的抓取表現(xiàn)良好,它在GPL許可下發(fā)行,并且完全使用Python編寫。按照robots.txt有一個延時的單網(wǎng)域延時爬蟲。

﹡Universal Information Crawler快速發(fā)展的網(wǎng)絡(luò)爬蟲,用于檢索存儲和分析數(shù)據(jù);

﹡Agent Kernel,當一個爬蟲抓取時,用來進行安排,并發(fā)和存儲的java框架。

未來,最貴的東西將是數(shù)據(jù)。所以,掌握爬蟲技術(shù)非常重要。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
一篇文章了解爬蟲技術(shù)現(xiàn)狀
Python爬蟲要如何學(xué)習(xí),才能快速入門
【預(yù)備知識篇】python網(wǎng)絡(luò)爬蟲初步_01
網(wǎng)絡(luò)輿情監(jiān)控系統(tǒng)的實現(xiàn)方法
用R語言三行代碼寫爬蟲
Python爬蟲 | 爬蟲基礎(chǔ)入門看這一篇就夠了
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服

主站蜘蛛池模板: 巴青县| 东山县| 溆浦县| 柳江县| 色达县| 洪洞县| 衡阳市| 临西县| 郓城县| 江津市| 金沙县| 行唐县| 凤翔县| 温宿县| 库尔勒市| 嘉兴市| 郑州市| 新建县| 金华市| 肥东县| 厦门市| 阿拉善左旗| 宾川县| 白河县| 峨眉山市| 百色市| 南川市| 福建省| 库伦旗| 策勒县| 芦山县| 永州市| 灌云县| 石林| 商南县| 都昌县| 鹤岗市| 洱源县| 屏山县| 从化市| 都昌县|