scrapy中添加ip池的方法

我使用的是scrapy2.2
setting 中写下ip池

IPPOOL = [{'ipaddr':'221.230.72.165:80'},
{'ipaddr':'175.154.50.162:8118'},
{'ipaddr':'111.155.116.212:8123'},]

在在中间件midllewares添加代码

from mypython.settings import IPPOOLfrom scrapy import signals
from scrapy.downloadermiddlewares.httpproxy import HttpProxyMiddleware
# useful for handling different item types with a single interface
from itemadapter import is_item, ItemAdapter
import randomclass Ip_proxy(HttpProxyMiddleware):def __init__(self, ip=''):self.ip = ipdef process_request(self, request, spider):newip = random.choice(IPPOOL)print('ip为:'+ newip["ipaddr"])request.meta["proxy"] = "http://" + newip["ipaddr"]

random函数是随机获取ip池的ip
创建Ip_proxy类名字随意
在setting设置DOWNLOADER_MIDDLEWARES
类的名字没错就行

 DOWNLOADER_MIDDLEWARES = {#  'youx.middlewares.MyCustomDownloaderMiddleware': 543,'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware':None,'mypython.middlewares.Ip_proxy': 125,} 

mypython是创建scrapy的项目名(scrapy startproject mypython),大家根据自己的项目名修改。
setting 中写下ip池 IPPOOL=[]
也可以改为直接在中间件中间添加。
运行的结果
。。。

。。。
如果要写自动更新IP池 就要抓取ip,再导入中间件中,代理ip一般免费的都用不了,或者响应慢等一系列问题,一般都是买代理ip,一般都提供API接口。

scrapy中添加ip池的方法相关推荐

  1. pythonscrapy爬虫ip代理池_在Scrapy中使用IP池或用户代理(python3)

    一.创建Scrapy工程 1 scrapy startproject 工程名 二.进入工程目录,根据爬虫模板生成爬虫文件 1 scrapy genspider -l # 查看可用模板2 scrapy ...

  2. python—简单数据抓取七(采取蘑菇API代理设置scrapy的代理IP池并利用redis形成队列依次使用,利用ip池访问网页并将scrapy爬取转移到items的数据存入到数据库)

    学习目标: Python学习二十七-简单数据抓取七 学习内容: 1.采取蘑菇API代理设置scrapy的代理IP池并利用redis形成队列依次使用 2.利用ip池访问网页并将scrapy爬取转移到it ...

  3. Win11添加IP安全策略的方法

    IP安全策略是一个给予通讯分析的策略,当我们配置好IP安全策略后,就相当于拥有了一个免费但功能完善的个人防火墙.相信还有很多用户不太清楚应该如何添加,对此今天小编将为大家分享Win11添加IP安全策略 ...

  4. 在(CListView)列表视图中添加右键菜单的方法

    使用弹出式菜单(PopMenu) 弹 出式菜单(PopMenu)大家都熟悉,在WIN98的桌面上单击鼠标右键弹出的菜单就是弹出式菜单.通常情况下,弹出式菜单在鼠标右键单击时弹出,当 然,也可以根据需要 ...

  5. Android开发过程中在sh,py,mk文件中添加log信息的方法

    Android开发过程中在sh,py,mk文件中添加log信息的方法 在sh文件中: echo "this is a log info" + $info 在py文件中: print ...

  6. python分发包_Python 分发包中添加额外文件的方法

    在制作一个 Python 分发包时经常需要把一些文件添加到包中.最常见的例子是你希望通过 pip install命令安装 Python 包时会在 /etc/ 等目录下自动添加默认配置文件,由此可以让 ...

  7. php 什么函数获取ip,在PHP中获取ip地址的方法有哪些

    在PHP中获取ip地址的方法有哪些 发布时间:2021-02-15 18:37:36 来源:亿速云 阅读:97 作者:Leah 这篇文章给大家介绍在PHP中获取ip地址的方法有哪些,内容非常详细,感兴 ...

  8. 如何在Eclipse中添加Servlet-api.jar的方法

    方法一: 点击窗口->首选项->java->构建路径->类路径变量->新建: 将你的tomcat目录下的common/lib/servlet.jar加进来. 如果你建立了 ...

  9. Qt中添加背景图片的方法

    Qt中添加背景图片的方法 QPalette的方法 #include #include int main(int argc, char *argv[]) { QApplication app(argc, ...

最新文章

  1. 服务器 上传文件 杀毒,一种实现文件上传网站后自动进行杀毒的方法及系统
  2. php中$GLOBALS
  3. 遭遇“长租杀熟”,95后蜗居的长租公寓未来也是“扑朔迷离”?
  4. TextBox字符串转换为数字类型
  5. 播放2 –模块,插件有什么区别?
  6. 【计算机系统设计】学习笔记(1)03,04
  7. php中设置文件权限的写法,php图片上传,如何设置文件权限
  8. 前端windows下常用的CMD 命令归纳
  9. web元件库、axure元件库、通用元件库、常用web组件、常用表单、框架、数据表单、导航栏、边框、图标、列表、日期时间选择器、评分组件、穿梭框、输入框、步骤条、图表组件、数据可视化、后台模板、时间轴
  10. Openstack M版快速配置(二)--刷数据库
  11. Ubuntu 16.04安装Caffe的记录及FCN官方代码的配置
  12. 海量Oracle学习视频分享
  13. 【强化学习】动态规划
  14. 实例分割最全综述(上):二阶段实例分割和一阶段实例分割
  15. matalab三维画图
  16. 国产单机《我的武林江湖》v1.1.159
  17. MIPI_DSI协议简要介绍
  18. dirbuster暴力破解工具
  19. 使用ffmpeg处理 视频文件中帧间时间戳异常、关键帧间隔异常
  20. opencv代码示例 -- 创建图片/Canny边缘检测

热门文章

  1. Vue学习笔记1---初识vue
  2. sap 标准委外和工序委外_委外加工-SAP的两种典型委外处理--方法.doc
  3. http://www.cppblog.com/wsy6634/archive/2009/05/16/83115.aspx?opt=admin
  4. python-科研绘图系列(4)-混淆矩阵图
  5. 单元测试框架 Mockito 注解 – @Mock, @Spy, @Captor, @InjectMocks
  6. Tampermonkey(油泼狓)插件的安装及使用
  7. PHP字体间距设置,div字间距-div内文字之间间距设置方法
  8. 微信公众号热门关键词的搜索排名规则
  9. 解压zip、rar、gz格式文件
  10. Anaconda3的安装教程(自用)