如何在scrapy请求异常之后再设置代理IP

技术如何在scrapy请求异常之后再设置代理IP如何在scrapy请求异常之后再设置代理IP,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我们都知道 s

针对这个问题,本文详细介绍了相应的分析和解决方法,希望能帮助更多想要解决这个问题的伙伴找到更简单易行的方法。

我们都知道scrapy可以设置代理IP,但是不知道大家有没有遇到过这样的场景:

常规代理IP设置将对每个请求生效,这意味着每个请求都将使用代理。

但是有些请求根本不需要代理,所以希望在我的请求出错或者超时的时候设置代理IP。

这不仅节省了资源,而且缩短了请求时间。毕竟有些机构质量真的一言难尽。

那么,当请求超时时,我们如何使用代理IP发出新的请求呢?

很容易想到下载中间件,DowmloaderMiddleware。

请求、响应之间的挂钩用于修改请求和处理响应。

首先,我们需要捕获超时等异常请求,并在下载中间件中添加以下代码:

来自twisted . internet . error importtcptimeduerror,TimeoutError

defprocess_exception(自身、请求、异常、蜘蛛):

ifisinstance(异常,超时错误):

自我。process _ request _ back (request,spider) #代理ip机制仅在连接超时时启用。

返回请求

elifisinstance(异常,tcptimeduerror):

self.process_request_back(请求,蜘蛛)

返回请求

上述代码的功能是捕获异常请求,同时调用设置代理IP的功能,返回请求。

下面是设置IP的代码。

defprocess_request_back(自我、请求、蜘蛛):

request . meta[' proxy ']=Xun . proxy

request . header[' Proxy-Authorization ']=Xun . header

请注意,不能使用process_request()方法。如果在此方法下添加代理,则是常规的代理IP方法。

同时,当暂存中存在TimeoutError、TCPTimedOutError等异常时,可以采用以下解决方案:

主要是通过设置文件来改变。

1、降低同时请求的数量

COMPONENT _ REQUESTS=5

2、 增加超时时间

DOWNLOAD_TIMEOUT=300

00-1010 retry _ times=5划痕请求异常后如何设置代理IP的答案在此分享,希望。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/54427.html

(0)

相关推荐

  • 空间向量,向量空间的标准向量空间怎么求

    技术空间向量,向量空间的标准向量空间怎么求空间中具有大小和方向的量叫做空间向量空间向量。向量的大小叫做向量的长度或模(moduius)。 规定,长度为0的向量叫做零向量,记为0. 模为1的向量称为单位向量。 与向量a长度

    生活 2021年10月22日
  • NHibernate是什么

    技术NHibernate是什么本篇内容介绍了“NHibernate是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!N

    攻略 2021年12月4日
  • PostgreSQL中pgmetrics有什么作用

    技术PostgreSQL中pgmetrics有什么作用本篇内容主要讲解“PostgreSQL中pgmetrics有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Pos

    攻略 2021年11月10日
  • 高抬腿的正确做法,高抬腿的动作要领是什么

    技术高抬腿的正确做法,高抬腿的动作要领是什么原地高抬腿:运动者的位置大致不发生变化的高抬腿运动。  高抬腿跑:运动者在交替抬腿的同时向前(快速)移动。动作要领:标准动作是在保持上身挺直的情况下高抬腿的正确做法,两腿交替抬

    生活 2021年10月25日
  • C++中为什么不要在一条语句内声明类或枚举值的同时又定义该类型的变量

    技术C++中为什么不要在一条语句内声明类或枚举值的同时又定义该类型的变量这篇文章主要讲解了“C++中为什么不要在一条语句内声明类或枚举值的同时又定义该类型的变量”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小

    攻略 2021年11月29日
  • Tomcat运行Java Web内存溢出的示例分析

    技术Tomcat运行Java Web内存溢出的示例分析这篇文章主要介绍Tomcat运行Java Web内存溢出的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如果JVM里运行的程序, 它的

    攻略 2021年12月11日