IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows -> 正文阅读

[网络协议]构建一个属于自己的爬虫 ip 池 | 自用 | 免费 | 2021年10月 | windows

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

一个其实没什么用的简介

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

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

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

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

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

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

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

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


前提准备

安装 Docker 和 Docker-compose

首先需要安装

Docker 和 Docker-compose 

Docker:

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

在这里插入图片描述
下载好之后正常安装就可以
在这里插入图片描述
在这里插入图片描述

注意:安装结束之后他要求重启,务必保存好需要的文件之后再点击 Close and restart
在这里插入图片描述
重启之后弹出来这个,accept就可以了
在这里插入图片描述
然后弹出来两个报错弹窗。这个点 继续
在这里插入图片描述
这个点链接
在这里插入图片描述
点这里 下载更新包。
在这里插入图片描述

下载好之后安装并重启。

在控制台输入 docker -v 可以检查版本信息。
在这里插入图片描述

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

Docker-compose:

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

在 GitHub 上下载项目

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

下载好后是一个压缩包

解压后得到一个文件夹

在这里插入图片描述


构建 ip 池

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

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

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

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

等出现类似这样的数据的时候,说明 ip 池可以用了。
在这里插入图片描述


调用 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 获取百度云下载链接。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 13:25:46  更:2021-10-29 13:26:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/1 21:36:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码