Tidak Ada Deskripsi

Germey 2cafcfdf61 add password 9 tahun lalu
examples 1f01debab7 update db 9 tahun lalu
proxypool 2cafcfdf61 add password 9 tahun lalu
.gitignore 4483901afc fix pop 9 tahun lalu
.travis.yml a0593a31ae add free proxy 9 tahun lalu
LICENSE a0593a31ae add free proxy 9 tahun lalu
README.md c8add161d6 add readme 9 tahun lalu
requirements.txt 2cafcfdf61 add password 9 tahun lalu
run.py 2cafcfdf61 add password 9 tahun lalu
setup.py 2cafcfdf61 add password 9 tahun lalu

README.md

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

设置