當(dāng)我們真正接觸了爬蟲之后會(huì)發(fā)現(xiàn)爬蟲的功能十分強(qiáng)大,但是我們并不能為所欲為的使用爬蟲,爬蟲需要遵循robots協(xié)議,該協(xié)議是國(guó)際互聯(lián)網(wǎng)界通行的道德規(guī)范,每一個(gè)爬蟲都應(yīng)該遵守,本節(jié)我們就來介紹一下爬蟲協(xié)議。
1. 違規(guī)案例(1)——BE違規(guī)抓取eBay
十二年前,BE公司利用爬蟲抓取了eBay等多個(gè)大型拍賣網(wǎng)站的商業(yè)信息,并把這些信息放置在自己的網(wǎng)站上供用戶瀏覽,獲得了客觀的網(wǎng)站流量,對(duì)于eBay來說,BE的爬蟲每天超過十萬次的訪問自家的服務(wù)器,造成了很大的壓力,因此向BE提出禁止抓取,但是BE因?yàn)槔娴脑蚨鵁o視這個(gè)要求,之后eBay便把BE告上法庭,經(jīng)過聯(lián)邦法官的取證后,認(rèn)定BE侵權(quán),禁止了BE的行為。
2. 違規(guī)案例(2)——360搜索無視r(shí)obots協(xié)議
2012年8月29日,上線十日便輕松登頂國(guó)內(nèi)第二大搜索引擎的奇虎360搜索遭到百度的起訴,百度認(rèn)為360公司違反Robots協(xié)議抓取百度知道、百度百科等數(shù)據(jù),而法庭也尊重Robots協(xié)議,因此360賠償百度70萬元, 由此可見,Robots協(xié)議在互聯(lián)網(wǎng)業(yè)界和司法界都是得到認(rèn)可的,我們?cè)谑褂玫臅r(shí)候也要嚴(yán)格遵循此協(xié)議。
3. 爬蟲協(xié)議
Robots協(xié)議(也稱為爬蟲協(xié)議、機(jī)器人協(xié)議等)的全稱是“網(wǎng)絡(luò)爬蟲排除標(biāo)準(zhǔn)”(Robots Exclusion Protocol),網(wǎng)站通過Robots協(xié)議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取,該協(xié)議屬于一個(gè)規(guī)范,并不能保證網(wǎng)站的隱私。
Robots協(xié)議是國(guó)際互聯(lián)網(wǎng)界通行的道德規(guī)范,基于以下原則:
1. 搜索技術(shù)應(yīng)服務(wù)于人類,同時(shí)尊重信息提供者的意愿,并維護(hù)其隱私權(quán)。
2. 網(wǎng)站有義務(wù)保證其使用者的個(gè)人信息和隱私不被侵犯。
在使用爬蟲的時(shí)候我們應(yīng)當(dāng)注意一下幾點(diǎn):
1. 拒絕訪問和抓取有關(guān)不良信息的網(wǎng)站。
2. 注意版權(quán)意識(shí),對(duì)于原創(chuàng)內(nèi)容,未經(jīng)允許不要將信息用于其他用途,特別是商業(yè)方面。
3. 嚴(yán)格遵循robots.txt協(xié)議。
4. 爬蟲協(xié)議查看方式
大部分網(wǎng)站都會(huì)提供自己的robots.txt文件,這個(gè)文件會(huì)告訴我們?cè)摼W(wǎng)站的爬取準(zhǔn)則,查看方式是在域名加"/robots.txt"并回車。
我們來看一下百度的爬蟲協(xié)議:
在上面我們可以看到,百度的爬蟲協(xié)議中對(duì)不同的訪問者有著不同的要求。
User-agent為訪問用戶,出現(xiàn)多個(gè)User-agent表示該網(wǎng)站對(duì)不同的用戶提供不同的準(zhǔn)則。例如該網(wǎng)站對(duì)于普通使用者為:
表示禁止所有搜索引擎訪問網(wǎng)站的任何部分,而對(duì)于這種的:
表示只禁止該搜索引擎訪問部分根目錄下的文件。
常使用的規(guī)范如下:
User-agent: * 這里的*代表的所有的搜索引擎種類,*是一個(gè)通配符。
Disallow: /baidu/ 這里定義是禁止爬尋baidu目錄下面的目錄。
Disallow: /dotcpp/*.htm 禁止訪問/dotcpp/目錄下的所有以".htm"為后綴的URL(包含子目錄)。
Disallow: /*?* 禁止訪問網(wǎng)站中所有包含問號(hào) (?) 的網(wǎng)址。
Disallow: /.jpg$ 禁止抓取網(wǎng)頁所有的.jpg格式的圖片。
Disallow:/dotcpp/dotcpp.html 禁止爬取dotcpp文件夾下面的dotcpp.html文件。
Allow: /dotcpp/ 這里定義是允許爬尋dotcpp目錄下面的目錄。
Allow: /dotcpp 這里定義是允許爬尋tmp的整個(gè)目錄。
Allow: .htm$ 僅允許訪問以".htm"為后綴的URL。
Allow: .gif$ 允許抓取網(wǎng)頁和gif格式圖片。
Sitemap: 網(wǎng)站地圖,告訴爬蟲這個(gè)頁面是網(wǎng)站地圖。
5. 總結(jié)
在使用爬蟲之前,如果是使用公司引擎或者大型的爬蟲引擎,那么一定要查看一下該網(wǎng)站的相關(guān)robots.txt信息,合理的使用網(wǎng)絡(luò)爬蟲,避免給網(wǎng)站擁有者以及個(gè)人造成不必要的麻煩,下一節(jié)我們正式踏入爬蟲的學(xué)習(xí)。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程