什么是代理
把web server想象成谷歌服务器,正常教室内无法直接访问,通过VPN软件来访问。
代理的分类
是否能知道最终服务器的信息:
知道:正向代理
不知道:反向代理,防止别人攻击网站,即使攻击了也是攻击nginx,重启一下nginx就可以了。
爬虫为什么要使用代理?
- 让服务器以为不是同一个客户端在请求
- 防止我们的真实地址被泄露,防止追究责任
代理的使用方法
-
requests.get(“http://www.baidu.com”,proxies = proxies)
-
proxies是一个字典,里面有键值对,键是协议,值是地址加端口号
-
proxies = {“http”:“http://12.34.56.79:9527”,
“https”:“https://12.34.56.79:9527”,
} -
http和https放一个就可以了。根据请求的地址类型来定。
代理的网址
- https://proxy.mimvp.com/free.php
- https://proxy.coderbusy.com
- 网站上的内容无法复制时,可以先右击检查,再进入要访问的网址。
使用代理的注意事项
- 准备一堆的ip代理,组成ip代理池
使用时随机(random choice)选一个ip来使用
随机选择时,有可能多次选中同一个ip,为了避免这种情况,应该采取一些策略:用到次数比较少的ip,在下次使用时有更大的可能性被用到;那么就要知道当前的ip被用了多少次,按照使用次数进行排序,在用的次数比较少的ip里随机选一个。- 把每个ip和使用次数times组成一个字典,再把字典组成列表,按照times进行排序
{“ip”:ip,“times”:0}
[{},{},{},{}] 对这个ip列表按照使用次数times进行排序,soltee方法
- 检查代理的可用性
使用requests设置超时参数,超时的ip地址删掉
代理ip质量检测网站