文章
本文总阅读量

proxy_pool 代理池部署

proxy_pool代理池部署

起因

我之所以研究代理池的使用,是因为在进行网页访问或者运行脚本时,如果同一个IP地址发出过多的请求,可能会导致该IP被封锁。因此,部署一个IP代理池以进行访问是必要的。

介绍

IP代理池是一种网络技术,它提供了一组代理服务器地址,这些地址可以在网络请求中使用,以隐藏或更改用户的实际IP地址。代理池的主要作用是提供匿名性和隐私保护,因为它们可以防止目标服务器直接看到用户的真实IP地址。

此外,IP代理池还可以帮助分散网络请求,防止因单一IP地址请求过多而被目标服务器封锁。这在进行大规模网络爬虫或自动化测试时特别有用,因为这些操作可能会在短时间内向目标服务器发送大量请求。

总的来说,IP代理池是一种强大的工具,可以提高网络爬虫的效率和稳定性,同时也可以提供额外的隐私保护

选择代理池

有许多代理池可供选择,包括开源项目。在这里,我将介绍两个我使用过的开源代理池项目

  1. jhao104/proxy_pool:这是一个开源的代理池项目,提供了大量免费的代理IP。它使用Python编写,可以自动抓取和验证代理IP。

  2. Python3WebSpider/ProxyPool:这也是一个开源的代理池项目,它提供了一个简单易用的API,可以方便地从代理池中获取代理IP。它也使用Python编写,对于熟悉Python的用户来说,使用起来会非常方便。

两个代理池都支持使用Docker进行部署,这使得部署过程变得非常方便。在对比之后,我选择了proxy_pool作为我的代理池,因为它的扩展性更强,更适合我的需求。

如何部署代理池

本文介绍proxy_pool的部署方法,采用docker-compose的方法进行部署。
首先clone项目
git clone git@github.com:jhao104/proxy_pool.git
然后cd到clone下来的目录下面
cd proxy_pool
接着直接执行
docker-compose up -d
就运行了。
在部署过程中,如果pip安装过慢,则修改Dockerfile文件。
runtime enviroment 修改为

1
2
3
4
# runtime environment
RUN apk add musl-dev gcc libxml2-dev libxslt-dev && \
    pip install --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com -r requirements.txt && \
    apk del gcc musl-dev

如何使用代理池

使用jhao104/proxy_pool代理池的步骤如下:

  1. 获取代理:你可以通过访问http://<your_server_ip>:5010/get/来获取一个可用的代理。这将返回一个代理IP和端口,例如{"proxy": "12.34.56.78:9012"}

  2. 获取多个代理:如果你需要一次获取多个代理,你可以访问http://<your_server_ip>:5010/all/。这将返回所有代理的列表。

  3. 删除代理:如果某个代理不再可用,你可以通过访问http://<your_server_ip>:5010/delete/?proxy=12.34.56.78:9012来删除它。

  4. 获取代理数量:你可以通过访问http://<your_server_ip>:5010/count/来获取当前代理池中的代理数量。

<your_server_ip>替换为你的服务器IP地址。如果你在本地运行代理池,你可以使用localhost127.0.0.1

也可以使用仓库提供 http://demo.spiderpy.cn 来进行请求,如果要获取https的代理可以访问http://demo.spiderpy.cn/get?type=https

本文由作者按照 CC BY 4.0 进行授权