通过在网络上爬取公开的代理ip,同时在本地进行代理测试,提取可用的代理IP,并记录其网络延时,最后将结果保存到文件以及redis zset(可选).
代理IP分为三个匿名等级:高匿, 普匿, 透明; 程序中以3, 2, 1标记, 0:未知.
新建python虚拟环境
$ virtualenv ~/virtualenv/ipproxy
$ source ~/virtualenv/ipproxy/bin/activate
$ pip install -r requirements.txt
修改配置文件 etc/config.py
$ mv etc/config.sample.py etc/config.py
$ vim etc/config.py
SNIFFER = {
'PROCESS_NUM': 4, # 开启进程数
'THREAD_NUM': 500, # gevent线程数
'PROXY_TYPE': [0, 1, 2, 3], # 指定代理IP匿名程度
'TARGET': 'http://www.baidu.com', # 测试代理IP的目标
'TIMEOUT': 10, # 测试延时
'OUTPUT': True, # 是否将结果输出到文件(`data/`)
'BACKEND': 'localhost:6379', # 是否将结果保存到redis(不保存则为'')
'KEY_PREFIX': 'ipproxy:', # redis key前缀
}
LOGGER = {
"PATH": './ipproxy.log' # 程序日志
}
启动脚本
$python main.py
参考 `example`