Python 爬蟲與反爬的幾個方案

原文連接: 何曉東 博客python

沒有絕對的反爬蟲措施,只能提升爬蟲爬取的成本。

爬蟲措施:
git

  • 不設防的網站,直接爬取,不作任何假裝
  • 基礎防備的網站,爬取過程當中增長 time.sleep(n) 進行休眠一下,降級爬取頻次,防止被限制。再能夠每次爬取切換 header 頭信息,假裝成多個終端發起的請求
  • 須要登陸的狀況下,須要多個用戶帳戶,爬取過程當中切換 cookie 信息,模擬不一樣用戶在請求。
  • 使用 IP 代理池,切換 IP,越太高級限制。

python 爬蟲相關的有幾個實現越過限制的包:fake_useragent proxy_list 等,假裝的越像真實用戶越爬取成功率高。github

反爬蟲措施:
瀏覽器

  • Nginx 層面進行頻次限制,能夠參考 Nginx http 資源請求限制,至於限制的 key 爲瀏覽器頭/IP/登陸用戶,能夠根據需求進行設置。
  • 代碼層面限制須要登陸訪問,一天僅能夠訪問必定數量的頁面,未登陸狀態僅能夠查看可數的幾個頁面,例如房源信息網站,一天查看 60+ 的房源詳情頁面已經不少了,更多能夠就有惡意了。這樣的限制對於爬蟲方來講,須要籌備不少帳號進行爬取。固然在完全的限制以外,能夠限制訪問超過數量彈出驗證碼,驗證以後才能夠繼續訪問,這樣至少不會讓少部分真實用戶沒法訪問
  • 提早獲取 IP 代理池的 IP 列表,直接防火牆層面的拉黑,能高端避免一些問題,免費 IP 代理池記得有網站,須要拉黑在本身獲取。
  • 將常見的爬蟲頭信息所有 Nginx 或者代碼層面拉黑,聽說一些大網站把 python 的幾個常見爬蟲頭信息所有拉黑了,提高基礎爬蟲的代碼成本。
  • 高端反爬蟲是每隔幾小時切換頁面代碼或者接口數據結構,記得淘寶是這樣作的,對於爬蟲方來講,可能剛剛寫好爬這種類型的代碼,而後總體頁面代碼和數據結構用了新一套,很高階的反制措施了。
  • 數據擾亂:每一頁有一些加解密規則,或者每頁有不一樣的擾亂數據,你抓取到的極有多是包含一些假數據,或者加密數據,也算是增長了爬蟲成本。例如網頁中也能夠增長一些關鍵性的樣式或者名稱一致的隱藏域,偶數頁不出現這些隱藏域,讓爬蟲很差找的關鍵元素。

以上是本身想到的一些措施,謹記如今亂爬是違法的,別爬取一時爽,三年起步了。cookie

© 原創文章,若有問題請聯繫 hexiaodong1992@outlook.com 謝謝!數據結構

最後恰飯 阿里雲全系列產品/短信包特惠購買 中小企業上雲最佳選擇 阿里雲內部優惠券網站

相關文章
相關標籤/搜索