ProxyPool
安装
① 直接使用
安装依赖
$ pip install -r requirements.txt
打开代理池和API
$ cd proxypool
$ python3 run.py
② 安装使用
安装
$ cd proxypool
$ python setup.py install
打开代理池和API
$ proxypool_run
也可以在程序代码中用相应的语言获取,例如:
import requests
from bs4 import BeautifulSoup
import lxml
def get_proxy():
r = requests.get('http://127.0.0.1:5000/get')
proxy = BeautifulSoup(r.text, "lxml").get_text()
return proxy
各模块功能
-
proxyGetter.py
爬虫模块
-
class proxypool.proxyGetter.FreeProxyGetter
爬虫类,用于抓取代理源网站的代理,用户可复写和补充抓取规则。
-
-
schedule.py
调度器模块
-
class proxypool.schedule.ValidityTester
异步检测类,可以对给定的代理的可用性进行异步检测。
-
class proxypool.schedule.PoolAdder
代理添加器,用来触发爬虫模块,对代理池内的代理进行补充,代理池代理数达到阈值时停止工作。
-
class proxypool.schedule.Schedule
代理池启动类,运行RUN函数时,会创建两个进程,负责对代理池内容的增加和更新。
-
-
db.py
Redis数据库连接模块
-
class proxypool.db.RedisClient
数据库操作类,维持与Redis的连接和对数据库的增删查该,
-
-
error.py
异常模块
-
class proxypool.error.ResourceDepletionError
资源枯竭异常,如果从所有抓取网站都抓不到可用的代理资源,
则抛出此异常。
-
class proxypool.error.PoolEmptyError
代理池空异常,如果代理池长时间为空,则抛出此异常。
-
-
api.py
API模块,启动一个Web服务器,对外提供代理的获取功能。
-
utils.py
工具箱
-
setting.py
设置