教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

網(wǎng)絡(luò)爬蟲原理:通用爬蟲如何獲取頁面內(nèi)容?

更新時間:2020年09月18日15時38分 來源:傳智播客 瀏覽次數(shù):

通用爬蟲是一個自動提取網(wǎng)頁的程序,它為搜索引擎從Internet網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成部分。

通用爬蟲從一個或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入隊列,直到滿足系統(tǒng)的一定停止條件。圖1演示了通用爬蟲抓取網(wǎng)頁的流程。

爬蟲工作原理


通用網(wǎng)絡(luò)爬蟲從互聯(lián)網(wǎng)中搜集網(wǎng)頁,采集信息,這些網(wǎng)頁信息用于為搜索引擎建立索引提供支持,它決定著整個引擎系統(tǒng)的內(nèi)容是否豐富,信息是否及時,因此其性能的優(yōu)劣直接影響著搜索引擎的效果。

但是,用于搜索引擎的通用爬蟲其爬行行為需要符合一定的規(guī)則,遵從一些命令或文件的內(nèi)容,如標(biāo)注為nofollow的鏈接,或者是Robots協(xié)議(后續(xù)會有相關(guān)介紹)。

多學(xué)一招:搜索引擎的工作流程

搜索引擎是通用爬蟲的最重要應(yīng)用領(lǐng)域,也是大家使用網(wǎng)絡(luò)功能時的最大助手。接下來就為大家介紹搜索引擎的工作流程,其主要包含以下幾個步驟。

1. 抓取網(wǎng)頁

搜索引擎使用通用爬蟲來抓取網(wǎng)頁,其基本工作流程與其他爬蟲類似,大致步驟如下:

(1)首先選取一部分的種子URL,將這些URL放入待抓取URL隊列;

(2)取出待抓取URL,解析DNS得到主機(jī)的IP,并將URL對應(yīng)的網(wǎng)頁下載下來,存儲進(jìn)已下載網(wǎng)頁庫中,并且將這些URL放進(jìn)已抓取URL隊列。

(3)分析已抓取URL隊列中的URL,分析其中的其他URL,并且將URL放入待抓取URL隊列,從而進(jìn)入下一個循環(huán)。

那么,搜索引擎如何獲取一個新網(wǎng)站的URL?

(1)新網(wǎng)站向搜索引擎主動提交網(wǎng)址:(如百度http://zhanzhang.baidu.com/linksubmit/url)。

(2)在其他網(wǎng)站上設(shè)置新網(wǎng)站外鏈(盡可能處于搜索引擎爬蟲爬取范圍)。

(3)搜索引擎和DNS解析服務(wù)商(如DNSPod等)合作,新網(wǎng)站域名將被迅速抓取。

2. 數(shù)據(jù)存儲

搜索引擎通過爬蟲爬取到網(wǎng)頁后,將數(shù)據(jù)存入原始頁面數(shù)據(jù)庫。其中的頁面數(shù)據(jù)與用戶瀏覽器得到的HTML是完全一樣的。

搜索引擎蜘蛛在抓取頁面時,也做一定的重復(fù)內(nèi)容檢測,一旦遇到訪問權(quán)重很低的網(wǎng)站上有大量抄襲、采集或者復(fù)制的內(nèi)容,很可能就不再爬行。

3. 預(yù)處理

搜索引擎將爬蟲抓取回來的頁面,進(jìn)行各種步驟的預(yù)處理,包括:

·提取文字

·中文分詞

·消除噪音(比如版權(quán)聲明文字、導(dǎo)航條、廣告等……)

·索引處理

·鏈接關(guān)系計算

·特殊文件處理

·....

除了HTML文件外,搜索引擎通常還能抓取和索引以文字為基礎(chǔ)的多種文件類型,如 PDF、Word、WPS、XLS、PPT、TXT 文件等。我們在搜索結(jié)果中也經(jīng)常會看到這些文件類型。

但搜索引擎還不能處理圖片、視頻、Flash這類非文字內(nèi)容,也不能執(zhí)行腳本和程序。

4. 提供檢索服務(wù),網(wǎng)站排名

搜索引擎在對信息進(jìn)行組織和處理后,為用戶提供關(guān)鍵字檢索服務(wù),將用戶檢索相關(guān)的信息展示給用戶。

同時會根據(jù)頁面的PageRank值(鏈接的訪問量排名)來進(jìn)行網(wǎng)站排名,這樣Rank值高的網(wǎng)站在搜索結(jié)果中會排名較前,當(dāng)然也可以直接付費(fèi)購買搜索引擎網(wǎng)站排名,付費(fèi)購買排名是搜索引擎公司的盈利業(yè)務(wù)之一。

圖2演示了搜索引擎的工作原理和主要組成部分。

搜索引擎

猜你喜歡:

Python爬蟲視頻教程:Python爬蟲項(xiàng)目教程下載

python爬蟲可以用來做什么?

爬蟲分類分析:網(wǎng)絡(luò)爬蟲有哪些分類?

python爬蟲視頻教程

Python高級程序員培訓(xùn)課程

0 分享到:
和我們在線交談!