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

相关推荐

  • Python文本预处理的方法是什么

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

    攻略 2021年10月25日
  • css学习11.14

    技术css学习11.14 css学习11.14CSS的三大特性
    CSS有三个非常重要的三个特性:层叠性,继承性、优先级。层叠性相同选择器设置相同的样式,此时一个样式就会覆盖另一个冲突的样式。层叠性主要解

    礼包 2021年11月15日
  • 三、七天入门django开发

    技术三、七天入门django开发 三、七天入门django开发 - Django模型层前言
    Django 提供了完善的模型(model)层用来创建和存取数据,不需要我们直接对数据库进行操作。
    模型层是什

    礼包 2021年12月9日
  • 12项目全站HTTPS

    技术12项目全站HTTPS 12项目全站HTTPS项目全站HTTPS
    1.配置web端博客配置文件
    [root@web01 ~]# vim /etc/nginx/conf.d/linux.wp.com.

    礼包 2021年11月7日
  • 怎么用C#开发超级账本Fabric

    技术怎么用C#开发超级账本Fabric本篇内容介绍了“怎么用C#开发超级账本Fabric ”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读

    攻略 2021年11月26日
  • Python数据结构与算法中的散列是什么

    技术Python数据结构与算法中的散列是什么本篇内容主要讲解“Python数据结构与算法中的散列是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python数据结构与算法

    攻略 2021年11月29日