安装并启动redis服务
使用proxyPool前,先下载安装好redis服务,过程如下:
1、下载:wget http://download.redis.io/releases/redis-4.0.11.tar.gz
2、解压:tar -zxvf redis-4.0.11.tar.gz
3、进入redis目录:cd redis-4.0.11
4、编译:make
5、修改redis.conf配置文件:
注销 bind 127.0.0.1
修改保护模式 protected-mode no
修改守护进程 daemonize no
使用无密码登录:看到requirepass那行被注销掉就好
6、进入src目录,启动redis-server服务:./redis-server
7、另起终端,启动redis客户端,验证服务是否正常开启(还是在src目录下):./redis-cli
下载proxyPool并运行
克隆proxyPool项目,配合文档使用,过程如下:
方法一:
1、克隆GitHub项目:git clone https://github.com/jhao104/proxy_pool.git
2、进入目录:cd proxy_pool
3、安装依赖:pip install -r requirements.txt
4、配置setting.py:修改DB_CONN 那一项为无密码登录
DB_CONN='redis://@127.0.0.1:6379/0'
5、启动调度程序:python3 proxyPool.py schedule
6、启动webApi服务:python3 proxyPool.py server
----------------------------------------------
方法二:
1、docker拉取项目:docker pull jhao104/proxy_pool
2、docker运行:
docker run --env DB_CONN=redis://@127.0.0.1:6379/0 -p 5010:5010 jhao104/proxy_pool:2.4.0
检验proxyPool运行效果
用官方给的测试小栗子进行检验,代码如下:
import requests
def get_proxy():
return requests.get("http://127.0.0.1:5010/get/").json()
def delete_proxy(proxy):
requests.get("http://127.0.0.1:5010/delete/?proxy={}".format(proxy))
# your spider code
def getHtml():
# ....
retry_count = 5
proxy = get_proxy().get("proxy")
while retry_count > 0:
try:
# 使用代理访问 :访问baidu.com作为例子
html = requests.get('http://www.baidu.com', proxies={"http": "http://{}".format(proxy)})
return html
except Exception:
retry_count -= 1
# 删除代理池中代理
delete_proxy(proxy)
return None
info=getHtml()
print(info)
命名为proxy.py,另起一终端运行该文件,如下,返回200状态码,则使用代理访问成功。
参考:
Kali安装redis 🌹
proxyPool用户指南 🌹
Linux安装部署Redis(超级详细) 🌹