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

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