隨著大數(shù)據(jù)時代的來臨,無論是個人還是企業(yè),對于數(shù)據(jù)的需求都越來越大。這種需求也催生了如今異常熱門的數(shù)據(jù)產(chǎn)業(yè),也催生了日益完善的網(wǎng)絡數(shù)據(jù)采集技術(shù)。
這種需求的擴大, 同時讓網(wǎng)絡爬蟲日益猖獗,猖獗到甚至影響到了網(wǎng)站和APP的正常運行。
高頻的網(wǎng)絡爬蟲行為無異于DDOS(分布式拒絕服務)攻擊,雖然法律可以治它,但是其過程之繁瑣,還是不如先讓網(wǎng)站自身充分地強大起來。
為了便于基礎薄弱的同學理解,我們先看一個基本的網(wǎng)站訪問鏈路圖:
這其中包含了我們從個人電腦的瀏覽器上訪問一個網(wǎng)頁所涉及的所有部件。同時我們可以將其簡化為下圖:
為什么要反爬蟲?
在設計反爬蟲系統(tǒng)之前,我們先來看看爬蟲會給網(wǎng)站帶來什么問題?
本質(zhì)上來說,互聯(lián)網(wǎng)上可以供人們?yōu)g覽、查看和使用的網(wǎng)站及其網(wǎng)站上的數(shù)據(jù),都是公開和允許獲取的,所以并不存在于所謂的“非法授權(quán)訪問”問題。
爬蟲程序訪問網(wǎng)頁和人訪問網(wǎng)頁沒有本質(zhì)區(qū)別,都是由客戶端向網(wǎng)站服務器發(fā)起HTTP請求,網(wǎng)站服務器接收到請求之后將內(nèi)容響應返回給客戶端。
只要是發(fā)起請求,網(wǎng)站服務器必然要進行響應,要進行響應,必然要消耗服務器的資源。
網(wǎng)站的訪問者與網(wǎng)站之間是互相互惠互利的關(guān)系,網(wǎng)站為訪問者提供了自己所需要的必要的信息和服務,而訪問者也為網(wǎng)站帶來了流量、訪客、活躍度。所以網(wǎng)站的所有者會愿意消耗服務器的帶寬、磁盤、內(nèi)存,為訪問者提供服務。
而爬蟲程序呢?無異于白嫖黨。成倍地消耗 網(wǎng)站服務器資源、占用服務器帶寬,卻不會給網(wǎng)站帶來一絲的利益,甚至于,最后的結(jié)果是有損于網(wǎng)站本身的。
爬蟲,可能算得上是互聯(lián)網(wǎng)里的鬣狗,難怪遭網(wǎng)站的運營者討厭它。