构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows

构建一个属于自己的爬虫 ip 池

    • 这篇博客适用于windows系统!!! 其他系统我没有试过,不知道是否可行!!!
    • 一个其实没什么用的简介
    • 前提准备
      • 安装 Docker 和 Docker-compose
      • 在 GitHub 上下载项目
    • 构建 ip 池
    • 调用 ip
    • 参考资料

这篇博客适用于windows系统!!! 其他系统我没有试过,不知道是否可行!!!

一个其实没什么用的简介

最近想爬取微信公众号的推送内容。搜了几篇相关博客之后我就开始写代码。没过多久就报错了,检查一下发现是 ip 被封了。好叭,那我就放慢速度,爬一次暂停半分钟。

结果没过多久又被封了。行吧,那我再慢点。

这也太慢了!不行,不能逃避现实了,必须得学会构建 ip 池,不然以后也是个麻烦事。

然后接着搜相关博客,抄代码。

搜了半天也没搜出来一个能用的。

最终在一篇微信公众号推送里面看到了一个 GitHub 项目是构建 ip 池的。那就借来用用吧。为了跑他的代码可是费了我不少功夫,查了好多资料才跑出来。(其实还是我自己太菜了,写不出来代码就算了,现成的代码也不会用)

惊讶地发现效果非常好!很顺利的就把我想要的推送爬下来了。

现写下这篇博客来推荐大家一起来用这个项目。


前提准备

安装 Docker 和 Docker-compose

首先需要安装

Docker 和 Docker-compose 

Docker:

去docker官网 点这里 ,下载安装包

构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows_第1张图片
下载好之后正常安装就可以
构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows_第2张图片
构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows_第3张图片

注意:安装结束之后他要求重启,务必保存好需要的文件之后再点击 Close and restart
构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows_第4张图片
重启之后弹出来这个,accept就可以了
构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows_第5张图片
然后弹出来两个报错弹窗。这个点 继续
构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows_第6张图片
这个点链接
构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows_第7张图片
点这里 下载更新包。
构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows_第8张图片

下载好之后安装并重启。

在控制台输入 docker -v 可以检查版本信息。
构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows_第9张图片

如果这里不能正常显示版本号的话,说明是安装存在问题。重来吧

Docker-compose:

你的电脑上大概已经默认安装了 docker-vompose。控制台输入 docker-compose -v 检查一下是否已经默认安装了。
在这里插入图片描述
能正常显示版本信息就没问题

在 GitHub 上下载项目

你可以点这里在原作者的 GitHub 上下载。如果嫌下载太慢可以去文末找百度云链接。

下载好后是一个压缩包

解压后得到一个文件夹

构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows_第10张图片


构建 ip 池

首先你要进入控制台(CMD),然后切换工作路径到 ProxyPool 文件夹

我这里 ProxyPool 文件夹在 C:\Users\sweetie\Downloads\ProxyPool-master

所以我的操作就是,进入控制台,输入

cd C:\Users\hasee\Downloads\ProxyPool-master\ProxyPool-master\proxypool

在这里插入图片描述
然后输入 docker-compose up

构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows_第11张图片

第一次运行的时候需要下载一些材料,得多等一会。

大概十分钟到二十分钟?源作者说可以通过配置一些文件实现更快的下载速度,但我不会配 (○` 3′○)

如果卡在一个界面一直不动的话,可能需要重启,然后重新进入控制台执行上述两个命令。

构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows_第12张图片

等出现类似这样的数据的时候,说明 ip 池可以用了。
构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows_第13张图片


调用 ip

访问 http://localhost:5555/random 即可获取一个可用 ip

具体代码调用示例如下:

import requests

proxypool_url = 'http://127.0.0.1:5555/random'
target_url = 'http://httpbin.org/get'

def get_random_proxy():
    """
    get random proxy from proxypool
    :return: proxy
    """
    return requests.get(proxypool_url).text.strip()

def crawl(url, proxy):
    """
    use proxy to crawl page
    :param url: page url
    :param proxy: proxy, such as 8.8.8.8:8888
    :return: html
    """
    proxies = {
     'http': 'http://' + proxy}
    return requests.get(url, proxies=proxies).text


def main():
    """
    main method, entry point
    :return: none
    """
    proxy = get_random_proxy()
    print('get random proxy', proxy)
    html = crawl(target_url, proxy)
    print(html)

if __name__ == '__main__':
    main()

运行结果如下

get random proxy 116.196.115.209:8080
{
     
  "args": {
     }, 
  "headers": {
     
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.22.0", 
    "X-Amzn-Trace-Id": "Root=1-5e4d7140-662d9053c0a2e513c7278364"
  }, 
  "origin": "116.196.115.209", 
  "url": "https://httpbin.org/get"
}

这表明我们的 ip 池是可用的。


参考资料

GitHub 源项目

不想去GitHub上下载的也可以来我的公众号 “我不是wc” 回复 021 获取百度云下载链接。

你可能感兴趣的:(python,爬虫,爬虫,tcp/ip)