鱼之乐

子非鱼安知鱼之乐


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

IP代理池

发表于 2019-11-26 更新于 2019-11-27 分类于 工具 评论数:

简介

通过网上的免费代理建立自己的代理池,本文学习github上jhao104/proxy_pool项目。

下载&安装

Redis:下载地址,可直接下载Windows安装文件,安装时选择注册系统服务,简单方便。

Redis Desktop Manager:下载地址

项目:下载地址,解压到指定文件夹。

安装所需依赖包

pip install -r requirements.txt

其中,lxml==3.7.2可能无法正常安装,可在requirements.txt将版本信息去除,安装最新的lxml。

如有git工具,亦可通过以下代码获取:

git clone git@github.com:jhao104/proxy_pool.git

注:推荐使用virtualenv工具建立独立项目空间。

配置&启动

配置Config/setting.py:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Config/setting.py 为项目配置文件

# 配置DB
DATABASES = {
"default": {
"TYPE": "REDIS",
"HOST": "127.0.0.1",
"PORT": 6379,
"NAME": "proxy",
"PASSWORD": ""

}
}


# 配置 ProxyGetter

PROXY_GETTER = [
"freeProxy01", # 这里是启用的代理抓取函数名,可在ProxyGetter/getFreeProxy.py 扩展
"freeProxy02",
....
]


# 配置 API服务

SERVER_API = {
"HOST": "0.0.0.0", # 监听ip, 0.0.0.0 监听所有IP
"PORT": 5010 # 监听端口
}

# 上面配置启动后,代理池访问地址为 http://127.0.0.1:5010

启动程序分为schedule调度程序和webserverApi服务

首先启动调度程序

python proxyPool.py schedule

然后启动webApi服务

python proxyPool.py webserver

启动过几分钟后即可看到抓取到的代理IP,可直接到数据库中查看,也可以通过api访问http://127.0.0.1:5010 查看。

Web Api

api method Description arg
/ GET api介绍 None
/get GET 随机获取一个代理 None
/get_all GET 获取所有代理 None
/get_status GET 查看代理数量 None
/delete GET 删除代理 None

扩展

项目默认包含几个免费的代理获取方法,亦可通过以下方式扩展新的代理:

首先在GetFreeProxy类中添加获取代理的静态方法,需要以生成器(yield)形式返回host:ip格式的代理,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
class GetFreeProxy(object):
# ....

# 你自己的方法
@staticmethod
def freeProxyCustom(): # 命名不和已有重复即可

# 通过某网站或者某接口或某数据库获取代理 任意你喜欢的姿势都行
# 假设你拿到了一个代理列表
proxies = ["139.129.166.68:3128", "139.129.166.61:3128", ...]
for proxy in proxies:
yield proxy
# 确保每个proxy都是 host:ip正确的格式就行

添加好方法后,修改Config/setting.py文件中的PROXY_GETTER项,在PROXY_GETTER下添加自定义的方法的名字:

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

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

可用代理列表

目前实现的采集免费代理网站有

厂商名称 状态 更新速度 可用率 是否被墙 地址
无忧代理 可用 几分钟一次 * 否 地址
66代理 可用 更新很慢 * 否 地址
西刺代理 可用 几分钟一次 * 否 地址
全网代理 可用 几分钟一次 * 否 地址
快代理 可用 几分钟一次 * 否 地址
云代理 可用 几分钟一次 * 否 地址
IP海 可用 几小时一次 * 否 地址
免费IP代理库 可用 快 * 否 地址

注:已去除无免费和被墙的代理网站。

# proxy pool
wagtail-3 - 示例网站
IP代理池-2
  • 文章目录
  • 站点概览
鱼之乐

鱼之乐

11 日志
3 分类
8 标签
  1. 1. 简介
  2. 2. 下载&安装
  3. 3. 配置&启动
  4. 4. 扩展
  5. 5. 可用代理列表
© 2019 鱼之乐
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Gemini v7.3.0