{"repo":"Python3WebSpider/ProxyPool","free":true,"listed":false,"github":"https://github.com/Python3WebSpider/ProxyPool","clone":"git clone https://github.com/Python3WebSpider/ProxyPool.git","description":"An Efficient ProxyPool with Getter, Tester and Server","language":"Python","stars":6237,"topics":["proxypool","redis","http","flask","proxy","webspider"],"license":"MIT","category":"databases-storage","readme_excerpt":"ProxyPool 简易高效的代理池，提供如下功能： - 定时抓取免费代理网站，简易可扩展。 - 使用 Redis 对代理进行存储并对代理可用性进行排序。 - 定时测试和筛选，剔除不可用代理，留下可用代理。 - 提供代理 API，随机取用测试通过的可用代理。 代理池原理解析可见「如何搭建一个高效的代理池」，建议使用之前阅读。 使用前注意 本代理池是基于市面上各种公开代理源搭建的，所以可用性并不高，很可能上百上千个代理中才能找到一两个可用代理，不适合直接用于爬虫爬取任务。 如果您的目的是为了尽快使用代理完成爬取任务，建议您对接一些付费代理或者直接使用已有代理资源；如果您的目的是为了学习如何搭建一个代理池，您可以参考本项目继续完成后续步骤。 付费代理推荐： - ADSL 拨号代理：海量拨号（中国境内）高质量代理 - 海外/全球代理：中国境外高质量代理 - 蜂窝 4G/5G 代理：极高质量（中国境内）防风控代理 使用准备 首先当然是克隆代码并进入 ProxyPool 文件夹： 然后选用下面 Docker 和常规方式任意一个执行即可。 使用要求 可以通过两种方式来运行代理池，一种方式是使用 Docker（推荐），另一种方式是常规方式运行，要求如下： Docker 如果使用 Docker，则需要安装如下环境： - Docker - Docker-Compose 安装方法自行搜索即可。 官方 Docker Hub 镜像：germey/proxypool 常规方式 常规方式要求有 Python 环境、Redis 环境，具体要求如下： - Python =3.6 - Redis Docker 运行 如果安装好了 Docker 和 Docker-Compose，只需要一条命令即可运行。 运行结果类似如下： 可以看到 Redis、Getter、Server、Tester 都已经启动成功。 这时候访问 http://localhost:5555/random 即可获取一个随机可用代理。 如果下载速度特别慢，可以自行修改 Dockerfile，修改： 常规方式运行 如果不使用 Docker 运行，配置好 Python、Redis 环境之后也可运行，步骤如下。 安装和配置 Redis 本地安装 Redis、Docker 启动 Redis、远程 Redis 都是可以的，只要能正常连接使用即可。 首先可以需要一下环境变量，代理池会通过环境变量读取这些值。 设置 Redis 的环境变量有两种方式，一种是分别设置 host、port、password，另一种是设置连接字符串，设置方法分别如下： 设置 host、port、password，如果 password 为空可以设置为空字符串，示例如下： 或者只设置连接字符串： 这里连接字符串的格式需要符合 redis://[:password@]host[:port][/database] 的格式， 中括号参数可以省略，port 默认是 6379，database 默认是 0，密码默认为空。 以上两种设置任选其一即可。 安装依赖包 这里强烈推荐使用 Conda 或 virtualenv 创建虚拟环境，Python 版本不低于 3.6。 然后 pip 安装依赖即可： 运行代理池 两种方式运行代理池，一种是 Tester、Getter、Server 全部运行，另一种是按需分别运行。 一般来说可以选择全部运行，命令如下： 运行之后会启动 Tester、Getter、Server，这时访问 http://localhost:5555/rando","default_branch":null,"files":null,"tree":[],"storefront":"/r/Python3WebSpider","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Python3WebSpider/ProxyPool/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}