【笔记】爬虫IP代理池

前言

通过jhao104/proxy_pool项目实现爬虫通过IP代理池获取代理IP

准备工作

  • Redis

下载项目

1
2
git clone https://github.com/jhao104/proxy_pool.git
cd proxy_pool

Docker部署

redis://:密码@IP地址:端口号/数据库:通过redis协议进行连接,可以指定密码,如果不指定密码可以省略

1
docker run --env DB_CONN=redis://127.0.0.1:6379/1 -p 5010:5010 jhao104/proxy_pool:latest

手动部署

下载依赖

1
pip3 install -r requirements.txt

修改配置

HOST:指定服务的访问地址
PORT:指定服务监听的端口号
DB_CONN:设置连接

redis://:密码@IP地址:端口号/数据库:通过redis协议进行连接,可以指定密码,如果不指定密码可以省略

setting.py
1
2
3
HOST = "0.0.0.0"
PORT = 5010
DB_CONN = 'redis://127.0.0.1:6379/1'

启动调度程序

  • 自动获取网上免费的IP代理,并存储到Redis
1
python3 proxyPool.py schedule

启动webApi服务

  • 通过HTTP服务操作Redis中存储的IP代理
1
python3 proxyPool.py server

使用IP代理

<url>:请求地址

1
2
3
4
5
6
7
8
9
10
11
12
13
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))


proxy = get_proxy().get("proxy")
response = requests.get(<url>, proxies={"http": "http://{}".format(proxy)})

完成

参考文献

知乎——CDA数据分析师