python爬虫利用代理池更换IP的方法步骤


Posted in Python onFebruary 21, 2021

0. 前言

周日在爬一个国外网站的时候,发现用协程并发请求,并且请求次数太快的时候,会出现对方把我的服务器IP封掉的情况。于是网上找了一下开源的python代理池,这里选择的是star数比较多的proxy_pool

1. 安装环境

# 安装python虚拟环境, python环境最好为python3.6,再往上的话,安装依赖时会报错
sudo apt update
sudo apt install python3.6
pip3 install virtualenv
virtualenv venv --python=python3.6
source venv/bin/activate

# 安装redis
sudo apt install redis-server
# 启动redis server
redis-server

 2. 安装依赖

git clone https://github.com/jhao104/proxy_pool.git
cd proxy_pool
pip install -r requirements.txt

3. 修改配置文件

# 修改setting.py 

# 配置API服务

HOST = "0.0.0.0"    # IP
PORT = 5010     # 监听端口

# 配置数据库

# 以下为三个示例,根据redis的配置,选择其中一种即可
# 一般启动redis时如果没有配置文件,那么选择第一种即可
# 1. Redis IP: 127.0.0.1 Port: 6379
DB_CONN = 'redis://@127.0.0.1:6379'
# 2. Redis IP: 127.0.0.1 Port: 6379 Password: 123456
DB_CONN = 'redis://:123456@127.0.0.1:6379'
# 3. Redis IP: 127.0.0.1 Port: 6379 Password: 123456 DB: 15
DB_CONN = 'redis://:123456@127.0.0.1:6379/15'

 

# 配置 ProxyFetcher

PROXY_FETCHER = [
 "freeProxy01",  # 这里是启用的代理抓取方法名,所有fetch方法位于fetcher/proxyFetcher.py
 "freeProxy02",
 # ....
]

4. 启动

# 可以用tmux开三个窗口

# 启动调度程序
python proxyPool.py schedule

# 启动webApi服务
python proxyPool.py server

5. 测试

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('http://www.example.com', proxies={"http": "http://{}".format(proxy)})
   # 使用代理访问
   return html
  except Exception:
   retry_count -= 1
 # 删除代理池中代理
 delete_proxy(proxy)
 return None

python爬虫利用代理池更换IP的方法步骤

更多的用法和文档请参考:document 和 https://github.com/jhao104/proxy_pool

到此这篇关于python爬虫利用代理池更换IP的方法步骤的文章就介绍到这了,更多相关python 代理池更换IP内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python多线程、异步+多进程爬虫实现代码
Feb 17 Python
python开发之str.format()用法实例分析
Feb 22 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
Jan 04 Python
在windows下Python打印彩色字体的方法
May 15 Python
Python enumerate函数功能与用法示例
Mar 01 Python
python面试题之列表声明实例分析
Jul 08 Python
浅析Python语言自带的数据结构有哪些
Aug 27 Python
Python3操作Excel文件(读写)的简单实例
Sep 02 Python
Python 复平面绘图实例
Nov 21 Python
python-web根据元素属性进行定位的方法
Dec 13 Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 Python
Python %r和%s区别代码实例解析
Apr 03 Python
Python用requests库爬取返回为空的解决办法
Feb 21 #Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 #Python
python实现图片转字符画的完整代码
Feb 21 #Python
利用Python实现最小二乘法与梯度下降算法
Feb 21 #Python
Scrapy实现模拟登录的示例代码
Feb 21 #Python
scrapy-splash简单使用详解
Feb 21 #Python
详解使用scrapy进行模拟登陆三种方式
Feb 21 #Python
You might like
缓存技术详谈―php
2006/12/14 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
解析smarty模板中类似for的功能实现
2013/06/18 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
js中的escape及unescape函数的php实现代码
2007/09/04 Javascript
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
jQuery实现图像旋转动画效果
2016/05/29 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
python的mysqldb安装步骤详解
2017/08/14 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
python2和python3实现在图片上加汉字的方法
2019/08/22 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
Tostadora意大利:定制T恤
2019/04/08 全球购物
护理专业个人求职简历的自我评价
2013/10/13 职场文书
简单的大学生自我鉴定
2014/02/18 职场文书
家长对老师的感言
2014/03/11 职场文书
市场总监岗位职责
2015/02/11 职场文书
复试通知单模板
2015/04/24 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
小学音乐课教学反思
2016/02/18 职场文书
学者《孟子》名人名言
2019/08/09 职场文书