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. 实验1 命令解释程序的编写
  2. R语言ggplot2可视化:ggplot2可视化分组散点图并使用geom_smooth函数在散点图图中为不同的散点簇添加对应的回归曲线
  3. ArcGIS为面要素生成邻接矩阵
  4. 【JavaSE_06】Java中的数组(array)-思维导图
  5. 乐迪机器人开热点_碧桂园餐饮机器人量产!预计年产能达4000台
  6. sqlserver复习总结
  7. Direct3D学习_绘制
  8. 10天内构建良好的REST API的指南
  9. python内嵌浏览器_内嵌web浏览器
  10. c4d在运行时候显示计算机内存不足,打开c4d电脑电脑卡死怎么办
  11. 百度贴吧客户端(Android)网络通信行为分析
  12. MGV2000_CW、JL、JZ、KA/KX、CNTV,零配置_S905L-B_全套固件(可救砖)
  13. 查看oracle数据库防火墙设置,用三个方法设置Oracle数据库穿越防火墙
  14. Spring基础----相关类
  15. @Value 读取yml 文件
  16. 每个程序员必知之SEO
  17. 百度SEO HTML5蓝色个人主页博客整站模板
  18. 原生js写一个简单的编辑器
  19. 什么是交换机,交换机的工作原理
  20. XENU常见问题及中文版英文版下载地址

热门文章

  1. Android 操作系统的内存回收机制
  2. 在NUC972上利用pjsip实现VOIP网关
  3. 【资料整理】01-学习资料之分门别类
  4. React 中高阶函数与高阶组件(上)
  5. RZ/G2L核心板功耗测试
  6. 一个震惊了整个德国的动人故事 (转)
  7. 实现ICMP重定向攻击
  8. [PAT B1046]划拳
  9. cdr怎么算曲线周长_如何去计算cdr里面曲线图形的周?
  10. 学生卡答题硬件解决方案介绍