项目需要,在此部署一个代理IP池,在github上寻找到一个名为IPProxy项目

运行环境 Runtime environment

1
2
操作系统 : Ubuntu18.04LTS  
Python 3.6.6

背景

项目的数据需要爬虫的支持,爬虫需要则需要IP代理池,来提高采集速度。由于爬取对象多少都会对同IP的请求量做出限制。

于是就在在github上寻找到一个名为IPProxy项目,这是一个代理池。

但是看起来也有一年不更新了..加上一些自己项目的需要,会对这个代理池进行特化的重构。

fork要是提交过去,也不知道领不领情就是了..2333

下载IPProxy

IPProxy点击此处,到有关页面下载或者运行(前提本机已经安装git工具)如下命令:

git clone https://github.com/qiyeboy/IPProxyPool.git

在这里为了方便我的做法是,使用Pycharm。VCS>Checkout from Version Control>Git:

1.png

将克隆地址“https://github.com/qiyeboy/IPProxyPool.git”复制进去确定也行。

环境配置

该项目中的readme.md说明文件中这样提到:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1.安装sqlite数据库(一般系统内置):
apt-get install sqlite3
<br/>
2.安装requests,chardet,web.py,gevent psutil:
pip install requests chardet web.py sqlalchemy gevent psutil
<br/>
3.安装lxml:
apt-get install python-lxml
<br/>
注意:

* python3下的是pip3
* 有时候使用的gevent版本过低会出现自动退出情况,请使用pip install gevent --upgrade更新)
* 在python3中安装web.py,不能使用pip,直接下载py3版本的[源码](https://codeload.github.com/webpy/webpy/zip/py3)进行安装

其实也不用上面说的这么麻烦就是啦…我给出我的快速部署方案。

将项目中的requirements.txt文件的内容改为:

1
2
3
4
5
6
7
8
9
chardet==2.3.0
gevent==1.2.0
greenlet==0.4.11
lxml==4.2.5
psutil==5.4.8
redis==2.10.5
requests==2.12.4
SQLAlchemy==1.1.4
web.py==0.40.dev0

你可以根据自己的需要选择是否创建虚拟环境。
这里以Ubuntu18.04为例,在requirements.txt的目录中,打开终端的命令窗口,并运行如下命令:

sudo apt-get install -y python3-dev build-essential libssl-dev libffi-dev libffi-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev

pip install -r requirements.txt

安装所需要的依赖包,并依照requirements.txt完成pip list的安装。

运行使用

这一步都很简答了,其实项目说明书解释得很清楚。
将项目目录clone到当前文件夹

$ git clone

切换工程目录

1
$ cd IPProxyPool

运行脚本

1
python IPProxy.py

成功运行后,打印信息

1
2
3
4
5
IPProxyPool----->>>>>>>>beginning
http://0.0.0.0:8000/
IPProxyPool----->>>>>>>>db exists ip:0
IPProxyPool----->>>>>>>>now ip num < MINNUM,start crawling...
IPProxyPool----->>>>>>>>Success ip num :134,Fail ip num:7882

总结

更多用法参考原项目说明IPProxy