在我沒接觸這一行時這個問題困擾了我很長時間,讓我十分的不理解到底什么是爬蟲,它難道是一種實體工具?,直到我學習Python 深入分析了解以后才揭開了它神秘的面紗。
爬蟲是什么呢?爬蟲有簡單的爬蟲和復雜的爬蟲。實際上簡單的爬蟲是一種腳本,是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本。
腳本就是粗糙的,但往往非常實用的小程序(一般來說不會超過幾千行,有時候也就幾百幾十行的代碼構成)。舉個簡單的例子,你現(xiàn)在要從一個學生租房的網(wǎng)站上讀取關于出租的學生公寓的信息。你一條一條去抄寫肯定是不現(xiàn)實的。所以就要用爬蟲。可以把一個信息類網(wǎng)站上幾千條信息一次全部扒下來。百度,谷歌這類的搜索引擎你也可以認為是一種爬蟲,只不過這類的技術十分的復雜,不是簡單的腳本。
搜索引擎是如何工作的?其實就是通過網(wǎng)絡爬蟲技術,將互聯(lián)網(wǎng)中數(shù)以百億計的網(wǎng)頁信息保存到本地,形成一個鏡像文件,為整個搜索引擎提供數(shù)據(jù)支撐。
這樣的技術首先就會涉及到一個十分重要并且人人關注的問題——是否違法?
仔細探究后總結出了如下觀點:
1.遵守 Robots 協(xié)議,但有沒有 Robots 都不代表可以隨便爬,
2.限制你的爬蟲行為,禁止近乎 DDoS 的請求頻率,一旦造成服務器癱瘓,約等于網(wǎng)絡攻擊;
3.對于明顯反爬,或者正常情況不能到達的頁面不能強行突破,否則是 Hacker 行為;
4.審視清楚自己爬的內容,絕不能觸碰法律的紅線。
至此你應該明白,爬蟲本身并不違法,而是要看你使用的方式和目的,還要看其商業(yè)用途。