美文网首页虫虫
ProxyPool 代理池

ProxyPool 代理池

作者: Nazarite_0141 | 来源:发表于2019-10-07 13:31 被阅读0次

首先使用 git clone 将源代码拉到你本地

git clone https://github.com/Python3WebSpider/ProxyPool.git

接着打开项目中的 setting.py

在这里可以配置相关信息

比如 Redis 的地址密码相关

(如果你之前没有使用过 redis 的话,可以到如下地址下载 https://github.com/MicrosoftArchive/redis/releases

image

接着在你 clone 下来的文件目录中

安装相关所需的 python 模块

pip3 install -r requirements.txt

redis 安装

Redis 的安装

访问地址:https://github.com/ServiceStack/redis-windows/tree/master/downloads

image

把 Redis 下载下来后找到一个合适的地方解压,就能得到如下图所示的目录(这里空格被替换成了%20...):

image

为了方便启动,我们在该目录下新建一个 startup.cmd 的文件,然后将以下内容写入文件:

redis-server redis.windows.conf

这个命令其实就是在调用 redis-server.exe 命令来读取 redis.window.conf 的内容,我们双击刚才创建好的 startup.cmd 文件,就能成功的看到 Redis 启动:

image

上图的提示信息告诉了我们:① Redis 当前的版本为 3.0.503;② Redis 运行在 6379 端口;③ Redis 进程的 PID 为 14748;④ 64 位。

我们可以打开同一个文件夹下的 redis-cli.exe 文件,这是 Redis 自带的一个客户端工具,它可以用来连接到我们当前的 Redis 服务器,我们做以下测试:

image

如此,我们便在 Windows 的环境下安装好了 Redis。

接下来开启你的 redis

image

redis 的默认端口就是 6379

接着就可以运行 run.py 了

代理池开始运行
 * Running on http://0.0.0.0:5555/ (Press CTRL+C to quit)
开始抓取代理
获取器开始执行
Crawling http://www.66ip.cn/1.html
正在抓取 http://www.66ip.cn/1.html
抓取成功 http://www.66ip.cn/1.html 200
成功获取到代理 201.69.7.108:9000
成功获取到代理 111.67.97.58:36251
成功获取到代理 187.32.159.61:51936
成功获取到代理 60.13.42.154:9999
成功获取到代理 106.14.5.129:80
成功获取到代理 222.92.112.66:8080
成功获取到代理 125.26.99.84:60493
...

如果你在运行的时候出现这个错误

注意!!!

AttributeError: 'int' object has no attribute 'items'

更新一下 redis 版本

pip3 install redis==2.10.6 

运行 run.py

这时候在你的 redis 中就有爬取到的代理 ip 了

image

项目跑起来之后

你就可以访问你的代理池了

比如随机获取一个代理 ip 地址

http://localhost:5555/random

这样访问之后就会获取到一个代理 ip

在代码中获取代理也不在话下啦

import requests
​
PROXY_POOL_URL = 'http://localhost:5555/random'
​
def get_proxy():
    try:
        response = requests.get(PROXY_POOL_URL)
        if response.status_code == 200:
            return response.text
    except ConnectionError:
        return None

ok

相关文章

网友评论

    本文标题:ProxyPool 代理池

    本文链接:https://www.haomeiwen.com/subject/vpkmpctx.html