|
|
9 tahun lalu | |
|---|---|---|
| .idea | 9 tahun lalu | |
| docs | 9 tahun lalu | |
| examples | 9 tahun lalu | |
| proxypool | 9 tahun lalu | |
| tests | 9 tahun lalu | |
| .gitignore | 9 tahun lalu | |
| .travis.yml | 9 tahun lalu | |
| LICENSE | 9 tahun lalu | |
| README.md | 9 tahun lalu | |
| requirements.txt | 9 tahun lalu | |
| run.py | 9 tahun lalu | |
| setup.py | 9 tahun lalu |
注意:请运行程序前先更新一下抓取代理的函数。
(请务必保证Python的版本在3.5以上,否则异步检验无法使用。)
Redis官网并没有提供Windows的安装版,Windows用户可以点击此处下载一个我自己编译的二进制版本(3.2版本2.7MB,VS 2015编译)。
$ pip install -r requirements.txt
*Windows用户如果无法安装lxml库请点击这里*。
$ cd proxypool
$ python3 run.py
$ cd proxypool
$ python setup.py install
$ proxypool_run
Windows 用户可以点击此处获取此程序的二进制包,直接运行。
访问http://127.0.0.1:5000/进入主页,如果显示'Welcome',证明成功启动。
访问http://127.0.0.1:5000/get可以获取一个可用代理。
访问http://127.0.0.1:5000/count可以获取代理池中可用代理的数量。
也可以在程序代码中用相应的语言获取,例如:
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
爬虫模块
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服务器,对外提供代理的获取功能。
工具箱
设置