如何防止網站內容被採集
阿新 • • 發佈:2019-01-07
很多防採集方法在施行的時候需要考慮是否影響搜尋引擎對網站的抓取,所以先來分析下一般採集器和搜尋引擎爬蟲採集有何不同。
相同點:
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、利用指令碼語言做分頁(隱藏分頁)
分析:還是那句,搜尋引擎爬蟲不會針對各種網站的隱藏分頁進行分析,這影響搜尋引擎對其收錄。但是,採集者在編寫採集規則時,要分析目標網頁程式碼,懂點指令碼知識的人,就會知道分頁的真實連結地址。
適用網站:對搜尋引擎依賴度不高的網站,還有,採集你的人不懂指令碼知識
採集器會怎麼做:應該說採集者會怎麼做,他反正都要分析你的網頁程式碼,順便分析你的分頁尾本,花不了多少額外時間。
7、防盜鏈措施(只允許通過本站頁面連線檢視,如:Request.ServerVariables("HTTP_REFERER") )
分析:asp和php可以通過讀取請求的HTTP_REFERER屬性,來判斷該請求是否來自本網站,從而來限制採集器,同樣也限制了搜尋引擎爬蟲,嚴重影響搜尋引擎對網站部分防盜鏈內容的收錄。
適用網站:不太考慮搜尋引擎收錄的網站
採集器會怎麼做:偽裝HTTP_REFERER嘛,不難。
8、全flash、圖片或者pdf來呈現網站內容
分析:對搜尋引擎爬蟲和採集器支援性不好,這個很多懂點seo的人都知道
適用網站:媒體設計類並且不在意搜尋引擎收錄的網站
採集器會怎麼做:不採了,走人
9、網站隨機採用不同模版
分析:因為採集器是根據網頁結構來定位所需要的內容,一旦先後兩次模版更換,採集規則就失效,不錯。而且這樣對搜尋引擎爬蟲沒影響。
適用網站:動態網站,並且不考慮使用者體驗。
採集器會怎麼做:一個網站模版不可能多於10個吧,每個模版弄一個規則就行了,不同模版採用不同採集規則。如果多於10個模版了,既然目標網站都那麼費勁的更換模版,成全他,撤。
10、採用動態不規則的html標籤
分析:這個比較變態。考慮到html標籤內含空格和不含空格效果是一樣的,所以< div >和< div >對於頁面顯示效果一樣,但是作為採集器的標記就是兩個不同標記了。如果次頁面的html標籤內空格數隨機,那麼
採集規則就失效了。但是,這對搜尋引擎爬蟲沒多大影響。
適合網站:所有動態且不想遵守網頁設計規範的網站。
採集器會怎麼做:還是有對策的,現在html cleaner還是很多的,先清理了html標籤,然後再寫採集規則;應該用採集規則前先清理html標籤,還是能夠拿到所需資料。
總結:
一旦要同時搜尋引擎爬蟲和採集器,這是很讓人無奈的事情,因為搜尋引擎第一步就是採集目標網頁內容,這跟採集器原理一樣,所以很多防止採集的方法同時也阻礙了搜尋引擎對網站的收錄,無奈,是吧?以上10條建議雖然不能百分之百防採集,但是幾種方法一起適用已經拒絕了一大部分採集器了。
相同點:
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、利用指令碼語言做分頁(隱藏分頁)
分析:還是那句,搜尋引擎爬蟲不會針對各種網站的隱藏分頁進行分析,這影響搜尋引擎對其收錄。但是,採集者在編寫採集規則時,要分析目標網頁程式碼,懂點指令碼知識的人,就會知道分頁的真實連結地址。
適用網站:對搜尋引擎依賴度不高的網站,還有,採集你的人不懂指令碼知識
採集器會怎麼做:應該說採集者會怎麼做,他反正都要分析你的網頁程式碼,順便分析你的分頁尾本,花不了多少額外時間。
7、防盜鏈措施(只允許通過本站頁面連線檢視,如:Request.ServerVariables("HTTP_REFERER") )
分析:asp和php可以通過讀取請求的HTTP_REFERER屬性,來判斷該請求是否來自本網站,從而來限制採集器,同樣也限制了搜尋引擎爬蟲,嚴重影響搜尋引擎對網站部分防盜鏈內容的收錄。
適用網站:不太考慮搜尋引擎收錄的網站
採集器會怎麼做:偽裝HTTP_REFERER嘛,不難。
8、全flash、圖片或者pdf來呈現網站內容
分析:對搜尋引擎爬蟲和採集器支援性不好,這個很多懂點seo的人都知道
適用網站:媒體設計類並且不在意搜尋引擎收錄的網站
採集器會怎麼做:不採了,走人
9、網站隨機採用不同模版
分析:因為採集器是根據網頁結構來定位所需要的內容,一旦先後兩次模版更換,採集規則就失效,不錯。而且這樣對搜尋引擎爬蟲沒影響。
適用網站:動態網站,並且不考慮使用者體驗。
採集器會怎麼做:一個網站模版不可能多於10個吧,每個模版弄一個規則就行了,不同模版採用不同採集規則。如果多於10個模版了,既然目標網站都那麼費勁的更換模版,成全他,撤。
10、採用動態不規則的html標籤
分析:這個比較變態。考慮到html標籤內含空格和不含空格效果是一樣的,所以< div >和< div >對於頁面顯示效果一樣,但是作為採集器的標記就是兩個不同標記了。如果次頁面的html標籤內空格數隨機,那麼
採集規則就失效了。但是,這對搜尋引擎爬蟲沒多大影響。
適合網站:所有動態且不想遵守網頁設計規範的網站。
採集器會怎麼做:還是有對策的,現在html cleaner還是很多的,先清理了html標籤,然後再寫採集規則;應該用採集規則前先清理html標籤,還是能夠拿到所需資料。
總結:
一旦要同時搜尋引擎爬蟲和採集器,這是很讓人無奈的事情,因為搜尋引擎第一步就是採集目標網頁內容,這跟採集器原理一樣,所以很多防止採集的方法同時也阻礙了搜尋引擎對網站的收錄,無奈,是吧?以上10條建議雖然不能百分之百防採集,但是幾種方法一起適用已經拒絕了一大部分採集器了。