反爬蟲方法大全

反爬蟲:

爬蟲與反爬蟲,這相愛相殺的一對,簡直可以寫出一部壯觀的鬥爭史。而在大數據時代,數據就是金錢,很多企業都爲自己的網站運用了反爬蟲機制,防止網頁上的數據被爬蟲爬走。然而,如果反爬機制過於嚴格,可能會誤傷到真正的用戶請求;如果既要和爬蟲死磕,又要保證很低的誤傷率,那麼又會加大研發的成本。

簡單低級的爬蟲速度快,僞裝度低,如果沒有反爬機制,它們可以很快的抓取大量數據,甚至因爲請求過多,造成服務器不能正常工作。而僞裝度高的爬蟲爬取速度慢,對服務器造成的負擔也相對較小。所以,網站反爬的重點也是那種簡單粗暴的爬蟲,反爬機制也會允許僞裝度高的爬蟲,獲得數據。畢竟僞裝度很高的爬蟲與真實用戶也就沒有太大差別了。

下面請看:反爬蟲策略

  1. 封IP:網頁的運維人員通過分析日誌發現最近某一個IP訪問量特別特別大,某一段時間內訪問了無數次的網頁,則運維人員判斷此種訪問行爲並非正常人的行爲,於是直接在服務器上封殺了此人IP。
  2. 封useragent:很多的爬蟲請求頭就是默認的一些很明顯的爬蟲頭python-requests/2.18.4,諸如此類,當運維人員發現攜帶有這類headers的數據包,直接拒絕訪問,返回403錯誤。
  3. 封cookies: 服務器對每一個訪問網頁的人都set-cookie,給其一個cookies,當該cookies訪問超過某一個閥值時就BAN掉該cookie,過一段時間再放出來,當然一般爬蟲都是不帶cookie進行訪問的,可是網頁上有一部分內容如新浪微博是需要用戶登錄才能查看更多內容。限制每個每天下載300張。
  4. 驗證碼驗證:當某一用戶訪問次數過多後,就自動讓請求跳轉到一個驗證碼頁面,只有在輸入正確的驗證碼之後才能繼續訪問網站。
  5. javascript渲染:網頁開發者將重要信息放在網頁中但不寫入html標籤中,而瀏覽器會自動渲染 <script ) 標籤中的js代碼將信息展現在瀏覽器當中,而爬蟲是不具備執行js代碼的能力,所以無法將js事件產生的信息讀取出來。
  6. ajax異步傳輸:訪問網頁的時候服務器將網頁框架返回給客戶端,在與客戶端交互的過程中通過異步ajax技術傳輸數據包到客戶端,呈現在網頁上,爬蟲直接抓取的話信息爲空。
  7. 頁面懶加載
  8. referer字段反爬:請求頭字段裏需要攜帶Cookie、User-Agent、Referer等多個字段共同請求才可以獲取到圖片數據,否則不返回數據。
  9. 延時操作:
  • 在點擊下載後顯示評價彈窗
  • 在點擊下載後跳轉頁面
  • 使用進度條控制用戶與非用戶,會員與非會員的下載速度
  1. 網頁iframe框架嵌套:在下載框處再內嵌一個窗口,使得爬蟲提取不到內層窗口的數據
  2. csrf防護:將圖片下載改爲post提交,並攜帶隨機的crfs_token值,每次進行比對token值正確後,再返回圖片
  3. 下載圖片返回包含圖片得壓縮包
  4. 限制每日下載量
  5. 圖片加水印或者logo
  6. DDOS防護

今天就講這裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章