許多防採集方法在施行的時候需要考慮是否影響搜尋引擎對網站的抓取,所以先來分析下一般採集器和搜尋引擎爬蟲採集有何不同。
相同點:
a. 兩者都需要直接抓取到網頁原始碼才能有效運作,
b. 兩者單位時間內會多次大量抓取被造訪的網站內容;
c. 宏觀上來講兩者IP都會變動;
d. 兩者多沒耐心的去破解你對網頁的一些加密(驗證),例如網頁內容透過js檔案加密,例如需要輸入驗證碼才能瀏覽內容,例如需要登入才能存取內容等。
不同點:
搜尋引擎爬蟲先忽略整個網頁原始碼腳本和樣式以及html標籤代碼,然後對剩下的文字部分進行切詞語法句法分析等一系列的複雜處理。而採集器一般是透過html標籤特點來抓取需要的數據,在製作採集規則時需要填寫目標內容的開始標誌何結束標誌,這樣就定位了所需要的內容;或者採用對特定網頁製作特定的正則表達式,來篩選出所需的內容。無論是利用開始結束標誌或正規表示式,都會涉及html標籤(網頁結構分析)。
然後再來提出一些防採集方法
1.限制IP位址單位時間的存取次數
分析:沒有哪個常人一秒鐘內能訪問相同網站5次,除非是程式訪問,而有這種喜好的,就剩下搜尋引擎爬蟲和討厭的採集器了。
弊端:一刀切,這同樣會阻止搜尋引擎對網站的收錄
適用網站:較不依賴搜尋引擎的網站
採集器會怎麼做:減少單位時間的造訪次數,減低採集效率
2、屏蔽ip
分析:透過後台計數器,記錄來訪者ip和訪問頻率,人為分析來訪記錄,屏蔽可疑Ip。
弊端:似乎沒什麼弊端,就是站長忙了點
適用網站:所有網站,站長能夠知道哪些是google或百度的機器人
採集器會怎麼做:打遊擊戰唄!利用ip代理採集一次換一次,不過會降低採集器的效率和網速(用代理嘛)。
3.利用js加密網頁內容
Note:這個方法我沒接觸過,只是從別處看來
分析:不用分析了,搜尋引擎爬蟲和採集器通殺
適用網站:極度討厭搜尋引擎和採集器的網站
採集者會這麼做:你那麼牛,都豁出去了,他就不來採你了
4.網頁裡隱藏網站版權或一些隨機垃圾文字,這些文字風格寫在css檔案中
分析:雖然不能防止採集,但是會讓採集後的內容充滿了你網站的版權說明或一些垃圾文字,因為一般採集器不會同時採集你的css文件,那些文字沒了風格,就顯示出來了。
適用網站:所有網站
採集者會怎麼做:對於版權文字,好辦,替換掉。對於隨機的垃圾文字,沒辦法,勤快點了。
5.使用者登入才能存取網站內容
分析:搜尋引擎爬蟲不會對每個這樣類型的網站設計登入程序。聽說採集器可以針對某個網站設計模擬使用者登入提交表單行為。
適用網站:極度討厭搜尋引擎,想阻止大部分採集器的網站
採集器會怎麼做:製作擬使用者登入提交表單行為的模組
6.利用腳本語言做分頁(隱藏分頁)
分析:還是那句,搜尋引擎爬蟲不會針對各種網站的隱藏分頁進行分析,這影響搜尋引擎對其收錄。但是,採集者在編寫採集規則時,要分析目標網頁程式碼,懂點腳本知識的人,就會知道分頁的真實連結位址。
適用網站:對搜尋引擎依賴度不高的網站,還有,採集你的人不懂腳本知識
採集者會怎麼做:應該說採集者會怎麼做,他反正都要分析你的網頁程式碼,順便分析你的分頁腳本,花不了多少額外時間。