App下載

Python爬蟲(chóng)基礎(chǔ)講解之爬蟲(chóng)分類(lèi)知識(shí)總結(jié)

偷得浮生 2021-08-12 10:22:19 瀏覽數(shù) (1804)
反饋

很多讀者看到爬蟲(chóng)是不是第一反應(yīng)就想到了某些蛛形綱的節(jié)肢動(dòng)物?其實(shí)在互聯(lián)網(wǎng)上爬蟲(chóng)還有另一種解釋——網(wǎng)頁(yè)機(jī)器人。今天我們就來(lái)介紹一下這些網(wǎng)頁(yè)機(jī)器人的分類(lèi)——互聯(lián)網(wǎng)爬蟲(chóng)分類(lèi)和一些python爬蟲(chóng)基礎(chǔ)知識(shí)吧。

一、通用爬蟲(chóng)

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

爬蟲(chóng)示意圖

第一步

搜索引擎去成千上萬(wàn)個(gè)網(wǎng)站抓取數(shù)據(jù)。

第二步

搜索引擎通過(guò)爬蟲(chóng)爬取到的網(wǎng)頁(yè),將數(shù)據(jù)存入原始頁(yè)面數(shù)據(jù)庫(kù)(也就是文檔庫(kù))。其中的頁(yè)面數(shù)據(jù)與用戶瀏覽器得到的HTML是完全—樣的。

第三步

搜索引擎將爬蟲(chóng)抓取回來(lái)的頁(yè)面,進(jìn)行各種步驟的預(yù)處理:中文分詞,消除噪音,索引處理。。。
搜索引擎在對(duì)信息進(jìn)行組織和處理后,為用戶提供關(guān)鍵字檢索服務(wù),將用戶檢索相關(guān)的信息展示給用戶。展示的時(shí)候會(huì)進(jìn)行排名。

二、搜索引擎的局限性

  • 搜索引擎抓取的是整個(gè)網(wǎng)頁(yè),不是具體詳細(xì)的信息。
  • 搜索引擎無(wú)法提供針對(duì)具體某個(gè)客戶需求的搜索結(jié)果。

聚焦爬蟲(chóng)

針對(duì)通用爬蟲(chóng)的這些情況,聚焦爬蟲(chóng)技術(shù)得以廣泛使用。聚焦爬蟲(chóng),是"面向特定主題需求"的一種網(wǎng)絡(luò)爬蟲(chóng)程序,它與通用搜索引擎爬蟲(chóng)的區(qū)別在于:聚焦爬蟲(chóng)在實(shí)施網(wǎng)頁(yè)抓取時(shí)會(huì)對(duì)內(nèi)容進(jìn)行處理篩選,盡量保證只抓取與需求相關(guān)的網(wǎng)頁(yè)數(shù)據(jù)。

三、Robots協(xié)議

robots是網(wǎng)站跟爬蟲(chóng)間的協(xié)議,用簡(jiǎn)單直接的txt格式文本方式告訴對(duì)應(yīng)的爬蟲(chóng)被允許的權(quán)限,也就是說(shuō)robots.txt是搜索引擎中訪問(wèn)網(wǎng)站的時(shí)候要查看的第一個(gè)文件。當(dāng)一個(gè)搜索蜘蛛訪問(wèn)一個(gè)站點(diǎn)時(shí),它會(huì)首先檢查該站點(diǎn)根目錄下是否存在robots.txt,如果存在,搜索機(jī)器人就會(huì)按照該文件中的內(nèi)容來(lái)確定訪問(wèn)的范圍;如果該文件不存在,所有的搜索蜘蛛將能夠訪問(wèn)網(wǎng)站上所有沒(méi)有被口令保護(hù)的頁(yè)面。——百度百科

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

淘寶: https://www.taobao.com/robots.txt
百度: https://www.baidu.com/robots.txt

四、請(qǐng)求與響應(yīng)

網(wǎng)絡(luò)通信由兩部分組成:客戶端請(qǐng)求消息服務(wù)器響應(yīng)消息

網(wǎng)絡(luò)通信的請(qǐng)求與響應(yīng)

瀏覽器發(fā)送HTTP請(qǐng)求的過(guò)程:

瀏覽器與服務(wù)器的請(qǐng)求與響應(yīng)

1.當(dāng)我們?cè)跒g覽器輸入U(xiǎn)RL https://www.baidu.com的時(shí)候,瀏覽器發(fā)送一個(gè)Request請(qǐng)求去
獲取 https://www.baidu.com 的html文件,服務(wù)器把Response文件對(duì)象發(fā)送回給瀏覽器。

2.瀏覽器分析Response中的HTML,發(fā)現(xiàn)其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。瀏覽器會(huì)自動(dòng)再次發(fā)送Request去獲取圖片,CSS文件,或者JS文件。

3.當(dāng)所有的文件都下載成功后,網(wǎng)頁(yè)會(huì)根據(jù)HTML語(yǔ)法結(jié)構(gòu),完整的顯示出來(lái)了。

實(shí)際上我們通過(guò)學(xué)習(xí)爬蟲(chóng)技術(shù)爬取數(shù)據(jù),也是向服務(wù)器請(qǐng)求數(shù)據(jù),獲取服務(wù)器響應(yīng)數(shù)據(jù)的過(guò)程。

到此這篇python爬蟲(chóng)基礎(chǔ)知識(shí)的文章就介紹到這了,更多Python爬蟲(chóng)的學(xué)習(xí)內(nèi)容請(qǐng)搜索W3Cschool以前的文章或繼續(xù)瀏覽下面的相關(guān)文章。


2 人點(diǎn)贊