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