为什么要用代理IP
很多数据网站,对于反爬虫都做了一定的限制,这个如果写过一些爬虫程序的小伙伴应该都深有体会,其实主要还是IP进了小黑屋了,那么为了安全,就不能使用自己的实际IP去爬取人家网站了,这个时候,就需要采用代理IP去做这些事情……
为什么要用高匿代理
我们可以对比不同类型的代理的区别,根据代理的匿名程度,代理可以分为如下类别:
高度匿名代理:会将数据包原封不动的转发,在服务端看来就好像真的是一个普通客户端在访问,而记录的IP则是代理服务器的IP。
普通匿名代理:会在数据包上做一些改动,服务器上有可能发现这是个代理服务器,也有一定几率追查到客户端的真实IP。
透明代理:不但改动了数据包,还会告诉服务器客户端的真实IP。
间谍代理:指组织或个人创建的用户记录用户传输的数据,然后进行研究、监控等目的的代理服务器。
运行环境
Python运行环境:Windows + python3.6
用到的模块:requests、bs4、json
如未安装的模块,请使用pip instatll xxxxxx
进行安装,例如:pip install requests
爬取西刺代理IP
这里,我只大概爬取西刺高匿代理50页的数据,当然了,爬100页,爬全部,都是可以的,就不多说了;
1 | def run(self): |
检测代理IP是否有效
爬取到的代理IP可能不能用,为了方便使用的时候,不报太多异常错误,所以需要先检测一下IP是否能正常使用,是否是有效代理IP,我这里列了三个网站,都可以很方便的检测IP地址是否能有效使用
- http://icanhazip.com/ 这个网站能直接返回代理的IP地址
- https://www.ip.cn/ 查询到代理的IP地址和位置信息
- http://ip.chinaz.com/ 站长工具也能定位到IP地址和位置信息
1 | def check_ip(self, ip_info): |
存储代理IP
我这里就不搞那些花里胡哨的,我直接把所有有效的代理IP的json
格式的数据存储到文件中,当然了,也可以存储到MongoDB
或者MySQL
数据库中,不管怎样存储,在使用的时候都是随机选取一个IP,更加方便快捷。
完整代码
代码我已经上传了GitHub(GitHub源码地址),但是呢,作为一个热心的搬瓦工,为了方便部分人想偷懒,不直接去交友网站查看,我在这里也贴一下源码出来吧,如果有啥问题,最好还是去交友网站找我,请接码……
1 | #!/usr/bin/env python |
最后
老规矩,大家有任何问题,都可以留言或者各种渠道告诉我,大家可以相互学习和交流,共同成长……