首页 > 其他分享 >高速——request请求

高速——request请求

时间:2023-06-26 11:36:06浏览次数:43  
标签:请求 request 高速 timeout requests 超时 连接 客户端

为防止服务器响应缓慢,导致客服端处理异常,requests请求大多设置 timeout 参数。Requests中timeout不设置默认值。

读取超时是没有默认值的,如果不设置,程序将一直处于等待状态。我们的爬虫经常卡死又没有任何的报错信息,原因就在这里了。

Timeout 类型:

超时可分为连接超时和读取超时
连接超时:指的是客户端实现到远端服务器端口的连接时request 所等待的时间。连接超时一般设为比 3 的倍数略大的一个数值,因为 TCP 数据包重传窗口的默认大小是 3。
读取超时:指的客户端已经连接上服务器并且发送了request后,客户端等待服务器发送请求的时间。(一般指的是服务器发送第一个字节之前的时间)。
客户端timeout 秒内从基础套接字上必须接收到第一个字节的数据, 否则抛出超时异常。

timeout 设置单一的值,将会用作 connect 和 read 二者的 timeout。

即连接超时和读取超时的时间之和
requests.get('https://github.com', timeout=5)

timeout 设置分别制定,就需要传入一个元组。

requests.get('https://github.com', timeout=(3.05, 27))

如果需要让 request 永远等待,则传入一个 None 作为 timeout 的值。

requests.get('https://github.com', timeout=None)

超时重试

一般超时我们不会立即返回,而会设置一个三次重连的机制。
其实 requests 已经帮我们封装好了。(但是代码好像变多了...)
max_retries 为最大重试次数,重试3次,加上最初的一次请求,一共是4次,所以上述代码运行耗时是20秒而不是15秒

标签:请求,request,高速,timeout,requests,超时,连接,客户端
From: https://www.cnblogs.com/gostrmao/p/17505121.html

相关文章

  • 调试 Web 页面时如何替换请求响应结果
    开发jssdk项目的时候,经常会希望快速检查我们的改动在真实场景中的表现。我们不可能直接更新到生产环境,于是很多人会考虑配置代理,并替换响应内容。但代理配置起来并不方便,比如在ios/android真机上开关代理需要手动输入ip、端口。我们还有一些更便捷的方法:Chromelocalover......
  • Request获取请求数据-请求头&请求体
       ......
  • 生产环境访问django后台,提示CSRF验证失败. 请求被中断
    解决方法:登录后复制 settings.py添加这句代码,域名改为你前端ngx的域名CSRF_TRUSTED_ORIGINS=['https://xxxx.demo.com'] ......
  • http跨域时的options请求
    来源:https://blog.csdn.net/qq_36025814/article/details/108023035 _____________________________________________________________________________________________________________________________________________________________________________________________......
  • 超越极限!80Gbps高速传输,让您的数据瞬间飞速传递
    大文件传输是很多企业面临的挑战之一。基于传统的文件传输方法,由于许多原因,例如网络拥塞、数据包丢失、传播延迟等,导致文件的传输速度较慢、不稳定或不安全。尤其是对于像科研机构、金融公司和媒体制作公司等需要传输大量数据的组织来说,需要解决这些问题才能够高效地工作。近年......
  • vue 解决 post请求下载文件,下载的文件损坏打不开,结果乱码
    axios.post('xxx',{responseType:'blob'//指定返回数据的格式为blob}).then(response=>{console.log(response);//把response打出来,看下图leturl=window.URL.createObjectURL(response.data);console.log(url)vara=document.cre......
  • Vue中的Ajax请求和Slot插槽的技术探究
    Ajax请求Ajax是一种异步的Web开发技术,用于在不刷新整个页面的情况下向服务器发送请求和接收响应。Vue提供了一种简单而强大的方法来处理Ajax请求。以下是在Vue中进行Ajax请求的基本步骤:安装Axios:Axios是一个流行的JavaScript库,用于进行Ajax请求。你可以使用npm或yarn等包管理......
  • 前端封装excel下载方法&&解决前端下载请求设置responseType: 'blob'时后台报错无法处
    请求设置responseType:'blob'时接口报错了如果不做处理则获取不到接口错误信息,此时下载的文件是有问题的。/*@paramsoptions{}*data:Blob,*fileName:String,*successMsg:String,**/import{Message}from'element-ui'importdownloadExcelFilePublicHandler......
  • Scrapy_FormRequest对象的使用
    FormRequest是Request的扩展类,具体常用的功能如下:请求时,携带参数,如表单数据从Response中获取表单的数据FormRequest类可以携带参数主要原因是:增加了新的构造函数的参数formdata。其余的参数与Request类相同.formdata参数类型为:dictclassscrapy.http.FormRequest(ur......
  • Scrapy_Request对象Cookie的演示
     Cookie的使用importscrapyclassCookieSpider(scrapy.Spider):name="爬虫名"allowed_domains=["域名.com"]start_urls=["url地址"]defstart_requests(self):forurlinself.start_urls:cookie......