突破反爬虫的利器——开源IP代理池

火山方舟向量数据库增长营销

专栏作者简介

七 夜

信息安全研究人员,比较擅长网络安全、逆向工程、Python爬虫开发、Python Web开发。
博客园:http://cnblogs.com/qiyeboy/

CSDN:http://blog.csdn.net/qiye\_/
Github:https://github.com/qiyeboy/

    突破反爬虫的一个常用做法是使用代理IP,可以是作为初学者或者个人来说,买一些代理ip成本稍微高一些,因此最近写了一个开源项目IPProxys,用来为个人提供代理ip。




   IPProxys原理:通过爬取各大代理网站提供的免费IP,进行去重,并验证ip的可用性,将有效的ip存储到sqlite中,并提供一个HTTP接口供爬虫程序获取ip。




    IPProxys项目已经上传到github中,链接为

https://github.com/qiyeboy/IPProxys 。下面对整个项目工程进行一下说明,如下图所示:

picture.image

  • api包:主要是实现http服务器,提供api接口(通过get请求,返回json数据)
  • data文件夹:主要是数据库文件的存储位置和qqwry.dat(可以查询ip的地理位置)
  • db包:主要是封装了一些数据库的操作
  • spider包:主要是爬虫的核心功能,爬取代理网站上的代理ip
  • test包:测试一些用例,不参与整个项目的运行
  • util包:提供一些工具类。其中的IPAddress.py查询ip的地理位置
  • validator包:用来测试ip地址是否可用
  • config.py:主要是配置信息(包括配置ip地址的解析方式和数据库的配置)

整个项目的代码量不大,大家可以根据自己的需求进行修改,也可以提出自己的想法和建议帮助我改进这个项目。

如何使用IPProxys项目呢?

1.将项目目录clone到当前文件夹

$ git clone

2.切换工程目录

$ cd IPProxys

3.运行脚本

python IPProxys.py

windows上运行效果如下图所示:

picture.image

项目依赖项:

  • 需要安装sqlite数据库
  • 安装requests库:pip install requests
  • 安装lxml: apt-get install python-lxml

当IPProxys运行起来后,外部的爬虫如何获取ip呢?
外部的爬虫只需要向IPProxys所在主机的8000端口发送GET请求即可。GET请求的参数为:

picture.image

例如:


        
访问http://127.0.0.1:8000/?types=0&count=5&country=中国这个链接的含义是获取5个ip地址在中国的高匿代理。响应为JSON格式,返回数据为:[{"ip": "220.160.22.115", "port": 80}, {"ip": "183.129.151.130", "port": 80}, {"ip": "59.52.243.88", "port": 80}, {"ip": "112.228.35.24", "port": 8888}, {"ip": "106.75.176.4", "port": 80}]
    

一般爬取到的有效ip大约有60个左右,基本上满足个人的需要。


Python中文社区

www.python-cn.com

picture.image

picture.image

致力于成为

国内最好的Python社区

QQ群:152745094

专栏作者申请邮箱

sinoandywong@gmail.com

— Life is short,we use Python —

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生可观测性技术的落地实践
云原生技术和理念在近几年成为了备受关注的话题。应用通过云原生改造,变得更动态、弹性,可以更好地利用云的弹性能力。但是动态、弹性的环境也给应用以及基础设施的观测带来了更大的挑战。本次分享主要介绍了云原生社区中可观测性相关的技术和工具,以及如何使用这些工具来完成对云原生环境的观测。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论