✍内容

https://github.com/jhao104/proxy_pool
https://github.com/safe6Sec/proxyServer

Installing

首先下载配置proxy_pool

1
2
3
4
5
6
7
git clone https://github.com/jhao104/proxy_pool.git

cd proxy_pool

pip3 install -r requirements.txt


然后因为项目需要用到redis,所以需要下载redis

apt install redis

然后在项目中的setting.py中将redis连接的密码改成空密码

下载proxyServer

https://github.com/safe6Sec/proxyServer/releases/download/v1.0/proxyServer.jar

使用方法

  • 启动redis

redis-server

  • 启动proxy_pool

开启两个终端,启动如下的命令

1
2
3
python3 proxyPool.py schedule

python3 proxyPool.py server
  • 启动proxyServer
1
java -jar proxyServer.jar 9090

然后使用各种工具的代理设置成127.0.0.1:9090就可以使用这个代理池了

但是免费的代理池并不好用,有时候根本连不上一个,所以需要自己添加代理

添加一个新的代理源方法如下:

  • 1、首先在ProxyFetcher类中添加自定义的获取代理的静态方法, 该方法需要以生成器(yield)形式返回host:ip格式的代理,例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
class ProxyFetcher(object):
# ....

# 自定义代理源获取方法
@staticmethod
def freeProxyCustom1(): # 命名不和已有重复即可

# 通过某网站或者某接口或某数据库获取代理
# 假设你已经拿到了一个代理列表
proxies = ["x.x.x.x:3128", "x.x.x.x:80"]
for proxy in proxies:
yield proxy
# 确保每个proxy都是 host:ip正确的格式返回
  • 2、添加好方法后,修改setting.py文件中的PROXY_FETCHER项:

  在PROXY_FETCHER下添加自定义方法的名字:

1
2
3
4
5
6
PROXY_FETCHER = [
"freeProxy01",
"freeProxy02",
# ....
"freeProxyCustom1" # # 确保名字和你添加方法名字一致
]

  schedule 进程会每隔一段时间抓取一次代理,下次抓取时会自动识别调用你定义的方法。