1. 程式人生 > >關於爬蟲與反爬蟲簡略方案

關於爬蟲與反爬蟲簡略方案

pcl 訪問 失效 一定的 提供服務 user res sniffer .com

像安全與黑客從來都是相輔相成一樣。
爬蟲與反爬蟲也是在雙方程序員的鬥智鬥勇的過程不斷發展和成長的。

抓包

抓包的目的: 分析出協議請求使用的數據,請求接口,參數等等。
常用的抓包分析工具:

  • Fiddler
  • Charles
  • Sniffer
  • Wireshark

具體使用策略,請自行百度,Google。

抓數據

這是我使用代理ip請求登錄接口時,某APP的響應:

使用 HttpClient 模擬請求

充分了解 HttpClient 的特性,使用方式等。
HttpClient4.5官方教程

user_agent 的使用

使用 user_agent 的偽裝和輪換模擬不同的客戶端。
建立UserAgent池,可以通過以下地址獲取一定量的UserAgent的信息。

http://www.fynas.com/ua/search?b=Chrome&k=

代理IP的使用

建立代理ip池,一般使用的免費或收費代理獲取代理ip每秒都會有一定的頻率限制。
那麽我們在使用的時候,就要在頻率限制內建立自己內部的一些策略,
當然這些策略建立在代理服務商的策略之上。因此設計實施時要考慮易維護性。

http代理

有些網站(包括APP、PC)具有一定的反爬蟲能力,
如拒絕代理ip直接請求接口:
這是我使用代理ip請求登錄接口時,某APP的響應:

CONNECT refused by proxy

而使用socks代理則無此問題。這就不得不要了解http代理和socks代理的區別。

socks代理

待續

設置訪問頻率

即便是使用了代理ip,那麽對目標接口的訪問也要有一定的頻率控制,
防止目標服務方檢測出頻率過快,進行拒絕服務的響應。

獲取目標站點Cookie有效時間,
將對應賬號和Cookie存入Redis,
起一個任務對賬號Cookie進行定時檢測,
接近失效時間,進行提前更新Cookie信息,

具體Cookie 池Cookie的失效和更新策略需要根據自己業務進行適當調整。

防止目標方的分析

  • 確保同一賬號的請求使用的是同一個UserAgent、同一個代理ip。
  • 註意訪問頻率
  • 其他

總而言之,就是模擬正常的客戶端發起對服務方的請求,偽裝的越像正常的客戶端,服務方越難分析出。

只要是服務方能夠提供服務,一般情況下都可以進行數據的爬取,
只不過是難易程度不同。
如果出於商業目的,要考慮付出的成本到底是否合適。


關於爬蟲與反爬蟲簡略方案