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