朗读

Python爬虫学习(10)--ip代理池

文章目录[x]
  1. 1:redis数据库的安装
  2. 1.1:查看是否安装成功
  3. 2:搭建代理池
  4. 2.1:运行
  5. 3:使用:

ip代理池的维护(涉及redis数据库的安装)

前言

之所以使用代理因为我们频繁访问一个网站的可能会遭到ip被封禁;

这个时候我们可以用ip代理池解决目标网站封 IP 的问题。

网上有很多的免费的代理ip,但是这些ip很不稳定,因为你在使用的同时可能别人也在使用,这个时候ip就很有可能别封禁。

对于土豪的话,当然也可以使用付费代理。但是对于小生而言觉得没有必要。

付费代理的话比如讯代理、阿布云等。本篇主要记录一下免费的代理池。

用到了一个开源项目:https://github.com/jhao104/proxy_pool

除此之外还涉及到了REDIS数据库的使用。

系统:我这里是虚拟机的deepin 15.11

声明:文章仅供研究交流使用。

redis数据库的安装

下载:http://download.redis.io/releases/

在上述页面下载自己选好的版本,我这里选的是3.2.8

可以使用命令下载

wget http://download.redis.io/releases/redis-3.2.8.tar.gz

解压:

tar -zxvf redis-3.2.8.tar.gz

复制,放到/usr/local/redis/目录下(没有的话新建一个)

sudo mv ./redis-3.2.8 /usr/local/redis/

进入该目录

cd /usr/local/redis

生成:

sudo make

测试(时间可能有点长)

sudo make test

安装

sudo make install

启动/停止服务

sudo service redis start # 启动服务

sudo service redis stop # 停止服务

查看是否安装成功

在终端中输入

ps aux|grep redis

显示下图表示成功

修改配置文件(这里不多说,可以百度,不修改也没事)

sudo vi /etc/redis/redis.conf

搭建代理池

下载项目:https://github.com/jhao104/proxy_pool

 

 

 

 

目前采取的免费站点有:

作者的帮助文档说的也很清楚。支持docker 安装或者手动安装。可以看一下。

这里需要说一下的是把数据库改成redis,还有就是安装一些模块比如flaskweb框架。

如果其他报错可能是相应的模块没有安装,安装一下就行。其他的按照作者教程文档就行

运行

# 如果你的依赖已经安装完成并且具备运行条件,可以在cli目录下通过ProxyPool.py启。动 
# 程序分为: schedule 调度程序 和 webserver Api服务 
# 首先启动调度程序 >>>python proxyPool.py schedule 
# 然后启动webApi服务 >>>python proxyPool.py webserver

然后稍等几分钟,可以通过调用api使用

访问:http://127.0.0.1:5010

访问:http://127.0.0.1:5010/get获取代理

访问:http://127.0.0.1:5010/get_status查看代理数量

使用:

使用的话可以封装调用,如

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))

# your spider code

def getHtml():
# ....
retry_count = 5
proxy = get_proxy().get("proxy")
while retry_count > 0:
try:
html = requests.get('https://www.example.com', proxies={"http": "http://{}".format(proxy)})
# 使用代理访问
return html
except Exception:
retry_count -= 1
# 出错5次, 删除代理池中代理
delete_proxy(proxy)
return None
点赞
  1. 风也说道:
    Google Chrome Android 7.0

    加油 :haha:

    1. 洛 尘曦 洛 尘曦说道:
      Google Chrome Windows 10

      嗯,加油,冲冲冲~

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像

Title - Artist
0:00