Scrapy爬蟲系列筆記之十:反爬蟲之動態代理,限速,登錄以及驗證碼_by_書訢

3.2ip代理

反爬:發現某個時段訪問大量增加,ip相同,需要登錄才能訪問
處理方式:IP代理池,利用免費資源

動態ip代理
思路很簡單直接書寫中間件利用代理(同user-agent在settings文件中放了一堆的代理ip地址和端口,資源見“西刺網”)

from settings import random_proxy
class RandomProxyMiddleware(object):
  #動態設置ip代理
  def process_request(self, request, spider):
   import random 
   random_index=random.randint(0,len(proxy_list)-1)
   random_proxy = proxy_list[random_index]
   request.meta["proxy"]=random_proxy 

這個方式有點low,每天需要自己去西刺網copy

其實可以自己寫爬蟲將ip和端口爬下來,然後再從文件或者數據庫獲取使用,返回碼無效的ip和端口進行刪除

3.2註冊賬號,每次請求帶cookie

反爬:要求進行登錄的時候
處理方式:註冊賬號,每次請求的時候帶上Cookie
同樣先放在settings.py文件中,設置Cookie只是對headers進行一下處理

3.4模仿人限制速度

反爬:請求過於頻繁,從而對ip訪問頻率進行限制
處理方式:限速
具體方式見官方文檔

百度scrapy-chs
配置一下就好了

3.5驗證碼識別

反爬:彈出驗證碼

處理方式:
1.在線打碼平臺
百度一下,調用接口即可
2.機器學習驗證碼識別

github上模型使用

3.6selenium進行動態網站數據爬取

反爬:增加動態網站,增加網絡分析複雜,使用Ajax進行數據交互
處理方式:第二章已經說明
筆記一到十鏈接
http://blog.csdn.net/sx_csu2016sw/article/details/79284369
http://blog.csdn.net/sx_csu2016sw/article/details/79284427
http://blog.csdn.net/sx_csu2016sw/article/details/79284449
http://blog.csdn.net/sx_csu2016sw/article/details/79284469
http://blog.csdn.net/sx_csu2016sw/article/details/79284481
http://blog.csdn.net/sx_csu2016sw/article/details/79284491
http://blog.csdn.net/sx_csu2016sw/article/details/79284509
http://blog.csdn.net/sx_csu2016sw/article/details/79284525
http://blog.csdn.net/sx_csu2016sw/article/details/79284547
http://blog.csdn.net/sx_csu2016sw/article/details/79284567

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