常见的反爬虫措施之一,就是查看用户发起请求的IP地址,若很频繁,则封IP。我们可以通过使用动态代理IP池实现反爬虫。百度搜索:爬虫IP池, 就有很多网站,这些网站一般都有提供免费的代理IP。但是这些IP质量不高,需要自己手动复制粘贴,测试后再使用,效率底下。我们可以写个爬虫,批量获取免费IP,自动测试后,再使用。
本篇文章使用的目标网址为:高可用全球免费代理IP库,因为HTTPS较少,所以本文章只获取其中HTTP类型的IP地址。使用的检查IP的网址为:https://icanhazip.com/
读者可以直接复制所有代码,新建py文件后,粘贴运行即可。2021.3.16亲测有效
此教程为获取http的,获取https的教程为:通过爬虫获取免费IP代理,搭建自己的IP池(https)
传入URL地址,返回可用的IP地址list列表。
- __init __ :设置请求头、请求地址list
- parse : 获得当前页面上的所有IP和端口号,返回一个list
- check_ip : 检查IP地址是否可用,返回可用的当前页面上的IP地址list和端口号
- get_ip : 运行主方法,返回所有可用的IP列表
- main : 主方法,最后会打印出符合条件的IP地址+端口号,读者可手动复制控制台上的信息,作为自己的IP代理池
- (不推荐)可以将此代码复制到自己的爬虫代码里,每次调用free_ip.get_ip(),获得list。该方法不推荐,因为会使网站并发量大,并且小型爬虫项目不需要这么多代理IP。
- (推荐)手动复制控制台里的IP地址信息,粘贴到代码中,作为初始化IP地址,然后每次随机选择一个IP地址请求。