Python爬虫requests判断请求超时并重新post/get发送请求
在使用Python爬虫中,你可以使用requests库来发送网络请求。为了判断请求超时并重新发送请求,你可以设置一个超时时间,并在请求超时时捕获异常重新发送请求。

import requests
#Python爬虫requests判断请求超时并重新post发送请求,proxies为代理
def send_request_post(url, data, headers , proxies , max_retries=3, timeout=5):
retries = 0
while retries < max_retries:
try:
# 去掉警告
requests.packages.urllib3.disable_warnings()
response = requests.post(url=url, json=data, headers=headers , verify=False, proxies=proxies,timeout=timeout)
if response.status_code == 200:
# 请求成功,返回响应
return response
except requests.exceptions.Timeout:
print(f"POST请求超时,正在进行第 {retries + 1} 次重试...")
except requests.exceptions.RequestException as e:
print(f"请求发生异常:{e}")
retries += 1 print("请求失败,达到最大重试次数。")
return None #Python爬虫requests判断请求超时并重新get发送请求,
def send_request_get(url, max_retries=3, timeout=5):
retries = 0
while retries < max_retries:
try:
response = requests.get(url, timeout=timeout)
if response.status_code == 200:
# 请求成功,返回响应
return response
except requests.exceptions.Timeout:
print(f"GET请求超时,正在进行第 {retries + 1} 次重试...")
except requests.exceptions.RequestException as e:
print(f"请求发生异常:{e}")
retries += 1 print("请求失败,达到最大重试次数。")
return None
#示例:get获取代理ip
def get_ip():
response = send_request_get('http:/xxxxxxxxxxxxxx/tip')
if response:
data = json.loads(response.text)
proxies = {
         "http": "http://%(proxy)s" % {"proxy": data["ip"]},
         "https": "http://%(proxy)s" % {"proxy": data["ip"]}
}
return proxies
#示例post
send_request_post(url, data, headers, proxies)

在上面的示例中,send_request_get函数接受一个URL作为参数,并可选地指定最大重试次数和超时时间。函数使用requests.get发送GET请求,并设置了超时时间为5秒。如果请求超时,会捕获requests.exceptions.Timeout异常,并输出重试信息。如果发生其他异常,会捕获requests.exceptions.RequestException并输出相关信息。

你可以调整max_retries和timeout的值来适应需求。

 
 
 

Python爬虫requests判断请求超时并重新post/get发送请求的更多相关文章

  1. Python爬虫requests判断请求超时并重新发送请求

     下面是简单的一个重复请求过程,更高级更简单的请移步本博客: https://www.cnblogs.com/fanjp666888/p/9796943.html  在爬虫的执行当中,总会遇到请求连接 ...

  2. Python爬虫—requests库get和post方法使用

    目录 Python爬虫-requests库get和post方法使用 1. 安装requests库 2.requests.get()方法使用 3.requests.post()方法使用-构造formda ...

  3. Python爬虫requests请求库

    requests:pip install  request 安装 实例: import requestsurl = 'http://www.baidu.com'response = requests. ...

  4. python爬虫---requests库的用法

    requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装 pip install requests 安装完成后import一下 ...

  5. Python爬虫笔记【一】模拟用户访问之设置请求头 (1)

    学习的课本为<python网络数据采集>,大部分代码来此此书. 网络爬虫爬取数据首先就是要有爬取的权限,没有爬取的权限再好的代码也不能运行.所以首先要伪装自己的爬虫,让爬虫不像爬虫而是像人 ...

  6. python爬虫requests的使用

    1 发送get请求获取页面 import requests # 1 要爬取的页面地址 url = 'http://www.baidu.com' # 2 发送get请求 拿到响应 response = ...

  7. python爬虫requests模块

    requests库的七个主要方法 1. requests.requests(method, url, **kwargs) 构造一个请求,支撑以下各方法的基础方法 method:请求方式,对应get/p ...

  8. Python爬虫---requests库快速上手

    一.requests库简介 requests是Python的一个HTTP相关的库 requests安装: pip install requests 二.GET请求 import requests # ...

  9. Python 爬虫五 进阶案例-web微信登陆与消息发送

    首先回顾下网页微信登陆的一般流程 1.打开浏览器输入网址 2.使用手机微信扫码登陆 3.进入用户界面 1.打开浏览器输入网址 首先打开浏览器输入web微信网址,并进行监控: https://wx.qq ...

  10. 模拟axios的创建[ 实现调用axios()自身发送请求或调用属性的方法发送请求axios.request() ]

    1.axios 函数对象(可以作为函数使用去发送请求,也可以作为对象调用request方法发送请求) ❀ 一开始axios是一个函数,但是后续又给它添加上了一些属性[ 方法属性] ■ 举例子(axio ...

随机推荐

  1. KubeSphere 社区双周报|2024.06.07-06.20

    KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...

  2. 使用 Cursor 和 Devbox 快速开发基于 Rust 的 WASM 智能合约

    本教程以一个智能合约(使用 NEAR 的一个官方 Fungible Tokens 来实现)的例子来介绍一下 Devbox 的强大功能,轻松构建环境,轻松发布. NEAR 是一个去中心化的应用平台,使用 ...

  3. vue 从后端拿到验证码并点击刷新

    验证码登录的实现思路1.前端从后端拿到验证码图片2.输入验证码进行登录3.后端拿到验证码进行比对,正确登录成功. 前端请求验证码直接写在img标签中即可,不必单独发送axios请求 // templa ...

  4. 什么是 Nodejs

    这集来聊什么是 Nodejs ,看看 Node.js 是为了解决什么样的痛点而生的,为啥说它是一个 JS 的运行环境,以及 npm 是什么,为何能引发了 Web 开发的革命. Node.js 的诞生 ...

  5. SpringBoot之后端图形验证码实现

    此验证码的实现没有用到太多的插件,话不多说直接上代码,大家拿过去就可以用. 1.验证码类 package com.youyou.login.util.validatecode; import lomb ...

  6. 实践出真知,小程序wepy,uni-app框架开发使用!

    一.前提 目前我只使用过wepy和uni-app框架开发过小程序,着重比较这两个框架使用感受! 另外wepy框架已经不维护了,希望uni-app好好维护下去! wepy和uni-app都是类似于vue ...

  7. .NET 实现的零部件离散型 MES+WMS 系统

    前言 随着制造业的不断发展,企业对于生产效率和管理水平的要求越来越高. EasyMES 是一款基于 .NET 6 开发的零部件离散型 MES(Manufacturing Execution Syste ...

  8. 今日一学,5道Java基础面试题(附Java面试题及答案整理)

    前言 马上国庆了,本来想着给自己放松一下,刷刷博客,慕然回首,自动拆装箱?equals?==?HashCode? instanceof? 似乎有点模糊了,那就大概看一下5道Java基础面试题吧.好记性 ...

  9. Scala代码练习

    1.编程实现百分制转换成五级制,规则如下: 90~100分,返回优秀: 80~89分,返回良好: 70~79分,返回中等: 60~69分,返回及格: 60分以下,返回不及格. object grade ...

  10. Redis的ZSet底层数据结构,ZSet类型全面解析

    文章目录 一.ZSet有序集合类型 1.1 简介 1.2 应用场景 1.3 底层结构 1.4 ZSet常用命令 二.ZSet底层结构详解 2.1 数据结构 2.2 压缩列表ZipList 2.3 跳表 ...