《Python網(wǎng)絡(luò)爬蟲》2.2 Robots協(xié)議

By 一頁(yè)編程


什么是Robots協(xié)議

Robots是機(jī)器人的意思,那Robots協(xié)議是什么呢?

Robots協(xié)議的全稱是“網(wǎng)絡(luò)爬蟲排除標(biāo)準(zhǔn)”(Robots Exclusion Protocol),讀起來很繞口,所以我們簡(jiǎn)稱Robots協(xié)議。Robots協(xié)議的一個(gè)很重要作用就是網(wǎng)站告知爬蟲哪些頁(yè)面可以抓取,哪些不行。

我們之前講過說一個(gè)網(wǎng)站想限制爬蟲,有兩個(gè)辦法,一個(gè)辦法是審查來源,一個(gè)辦法是通過Robots協(xié)議來做到告知。Robots協(xié)議就是這樣的一個(gè)功能,它的具體使用是在網(wǎng)站的根目錄下放置一個(gè)文件——robots.txt文件,在這個(gè)文件中寫明了在一個(gè)網(wǎng)站里哪些目錄是允許爬蟲去爬取的,哪些目錄是不允許的。

通過這樣的形式,你如果寫了一個(gè)爬蟲,你就要去尊重網(wǎng)站維護(hù)人員對(duì)網(wǎng)站資源的一個(gè)管理。

京東的Robots協(xié)議

我們看一下京東的Robots協(xié)議,瀏覽器打開網(wǎng)址:https://www.jd.com/robots.txt,就看到Robots協(xié)議的文本。

User-agent: * 
Disallow: /?* 
Disallow: /pop/*.html 
Disallow: /pinpai/*.html?* 
User-agent: EtaoSpider 
Disallow: / 
User-agent: HuihuiSpider 
Disallow: / 
User-agent: GwdangSpider 
Disallow: / 
User-agent: WochachaSpider 
Disallow: /
  • User-agent: * :指的是對(duì)于任何的網(wǎng)絡(luò)爬蟲來源(定義為user-agent),也就是說無論你是什么樣的網(wǎng)絡(luò)爬蟲都應(yīng)該遵守如下的協(xié)議。
  • Disallow: /?* :不允許所有爬蟲訪問以問號(hào)開頭的路徑。
  • Disallow: /pop/*.html :不允許所有爬蟲訪問pop目錄下的所有HTML頁(yè)面。
  • Disallow: /pinpai/*.html?* :符合這個(gè)通配符的內(nèi)容也是不允許任何網(wǎng)絡(luò)爬蟲訪問的

此外,京東的robots協(xié)議又提供了User-agent: EtaoSpider 這樣的一個(gè)內(nèi)容,其實(shí)不只是EtaoSpider,后面還有四個(gè)網(wǎng)絡(luò)爬蟲,后面都跟了一句Disallow: / 指的是這四個(gè)網(wǎng)絡(luò)爬蟲,是不允許爬去京東的任何資源,

Robots基本語(yǔ)法

Robots協(xié)議他通過了一個(gè)基本語(yǔ)法來告知所有的爬蟲,它內(nèi)部資源能夠被訪問的權(quán)限,這個(gè)語(yǔ)法就是User-agentDisallow。

  • User-agent 表明的是哪些爬蟲,如果我們想代表所有爬蟲就用User-agent: *。
  • Disallow 代表的是不允許這個(gè)爬蟲訪問的資源的目錄。

有了這樣的一個(gè)基本協(xié)議,就可以對(duì)整個(gè)網(wǎng)站的內(nèi)容做一個(gè)相關(guān)的規(guī)范,使得所有的爬蟲知道他可以訪問哪里,不可以訪問哪里。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容