如何在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)

相关推荐

  • Java Web的三大组件之一Filter过滤器实现原理实例讲解

    技术Java Web的三大组件之一Filter过滤器实现原理实例讲解 Java Web的三大组件之一Filter过滤器实现原理实例讲解
    FilterServlet, Filter, Listener称为

    礼包 2021年12月10日
  • 七种基本UML元件分别是什么

    技术七种基本UML元件分别是什么这篇文章给大家介绍七种基本UML元件分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。UML元件上节的讲解是按照功能对UML图形进行的分类,绘制UML图形时,我

    攻略 2021年11月23日
  • openldap中数据库配置的示例分析

    技术openldap中数据库配置的示例分析这篇文章主要介绍openldap中数据库配置的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完![root@ldap-server ldap]# cp

    攻略 2021年11月18日
  • 27 视图集

    技术27 视图集 27 视图集视图集
    """视图集特点: 1,可以将一组相关的操作, 放在一个类中进行完成 2,不提供get,post方法, 使用retrieve, create方法来替代

    礼包 2021年11月4日
  • OsgEarth开发笔记,四):Qt5.15.2在QtCreator集成Osg3.6.3+OsgEarth3.1+OsgQt的vs2019x64版本开发环境搭建

    技术OsgEarth开发笔记,四):Qt5.15.2在QtCreator集成Osg3.6.3+OsgEarth3.1+OsgQt的vs2019x64版本开发环境搭建 OsgEarth开发笔记(四):Qt

    礼包 2021年12月24日
  • MAC上安装MYSQL的步骤是什么

    技术MAC上安装MYSQL的步骤是什么这篇文章主要讲解了“MAC上安装MYSQL的步骤是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MAC上安装MYSQL的步骤是什

    攻略 2021年10月22日