突破反爬虫的常用方法是使用代理ip。对于初学者或个人来说,购买一些代理ip的成本略高。因此,最近编写了一个开源项目IPProxys,为个人提供代理IP。
IpProxys原理:通过抓取各大代理网站提供的免费代理ip,进行去重,验证ip的可用性,将有效IP存储在sqlite中,为爬虫获取IP提供HTTP接口。
IPProxys项目已经上传到github,链接是https://github.com/qiyeboy/IPProxys.以下是整个项目的描述。
Api包:主要实现http服务器,提供api接口(通过get请求返回json数据)。
数据文件夹:主要指数据库文件和qqwry.dat的存储位置(可以查询ip的地理位置)。
Db包:主要封装一些数据库操作。
蜘蛛包是爬虫的核心功能,在代理网站上抓取代理ip。
测试包:测试一些用例,不参与整个项目的运行。
Util包:提供一些工具类。其中ipAddress.py查询IP的地理位置。
验证包:用于测试ip地址是否可用。
Config.py:主要是配置信息(包括配置ip地址的解析方法和数据库的配置)。
整个项目代码量很小,大家可以根据自己的需要进行修改,也可以提出自己的想法和建议,帮助我完善这个项目。
如何使用IPProxys项目?
1.将项目目录克隆到当前文件夹。
$ git克隆
2.切换项目目录。
$ cd IPProxys
3.运行脚本。
python IPProxys.py
窗口运行效果如下图所示:
项目依赖关系:
需要安装Sqlite数据库。
安装请求库:pip安装请求。
install lxml:apt-get install python-lxml。
ipProxys运行时,外部爬虫如何获取IP?
外部爬虫只需要向IPProxys所在主机的端口8000发送GET请求。获取请求的参数
动态IP模拟器