溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python為什么是通用爬蟲

發(fā)布時間:2020-09-23 14:22:49 來源:億速云 閱讀:141 作者:Leah 欄目:編程語言

Python為什么是通用爬蟲?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

通用爬蟲和聚焦爬蟲

根據(jù)使用場景,網(wǎng)絡(luò)爬蟲可分為通用爬蟲和聚焦爬蟲兩種。

通用爬蟲

通用網(wǎng)絡(luò)爬蟲是捜索引擎抓取系統(tǒng)(Baidu、Google、Yahoo等)的重要組成部分。主要目的是將互聯(lián)網(wǎng)上的網(wǎng)頁下載到本地,形成一個互聯(lián)網(wǎng)內(nèi)容的鏡像備份。

通用搜索引擎(Search Engine)工作原理

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

第一步:抓取網(wǎng)頁

搜索引擎網(wǎng)絡(luò)爬蟲的基本工作流程如下:

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

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

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

Python為什么是通用爬蟲

搜索引擎如何獲取一個新網(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)站域名將被迅速抓取。

但是搜索引擎蜘蛛的爬行是被輸入了一定的規(guī)則的,它需要遵從一些命令或文件的內(nèi)容,如標(biāo)注為nofollow的鏈接,或者是Robots協(xié)議。

Robots協(xié)議(也叫爬蟲協(xié)議、機器人協(xié)議等),全稱是“網(wǎng)絡(luò)爬蟲排除標(biāo)準(zhǔn)”(Robots Exclusion Protocol),網(wǎng)站通過Robots協(xié)議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取,例如:

淘寶網(wǎng):https://www.taobao.com/robots.txt

騰訊網(wǎng): http://www.qq.com/robots.txt

第二步:數(shù)據(jù)存儲

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

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

第三步:預(yù)處理

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

(1)提取文字

(2)中文分詞

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

(4)索引處理

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

(6)特殊文件處理

....

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

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

第四步:提供檢索服務(wù),網(wǎng)站排名

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

同時會根據(jù)頁面的PageRank值(鏈接的訪問量排名)來進行網(wǎng)站排名,這樣Rank值高的網(wǎng)站在搜索結(jié)果中會排名較前,當(dāng)然也可以直接使用 Money 購買搜索引擎網(wǎng)站排名,簡單粗暴。

Python為什么是通用爬蟲

但是,這些通用性搜索引擎也存在著一定的局限性:

通用搜索引擎所返回的結(jié)果都是網(wǎng)頁,而大多情況下,網(wǎng)頁里90%的內(nèi)容對用戶來說都是無用的。

不同領(lǐng)域、不同背景的用戶往往具有不同的檢索目的和需求,搜索引擎無法提供針對具體某個用戶的搜索結(jié)果。

萬維網(wǎng)數(shù)據(jù)形式的豐富和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,圖片、數(shù)據(jù)庫、音頻、視頻多媒體等不同數(shù)據(jù)大量出現(xiàn),通用搜索引擎對這些文件無能為力,不能很好地發(fā)現(xiàn)和獲取。

通用搜索引擎大多提供基于關(guān)鍵字的檢索,難以支持根據(jù)語義信息提出的查詢,無法準(zhǔn)確理解用戶的具體需求。

針對這些情況,聚焦爬蟲技術(shù)得以廣泛使用。

看完上述內(nèi)容,你們掌握Python為什么是通用爬蟲的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI