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_retriestimeout的值来适应需求。

 
 
 

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. Solon-Boot 与 SpringBoot 的概念不同

    平常我们是拿 Solon 生态与 SpringBoot 生态作比较.而非 Solon-Boot(仅是功能模块) 与 SpringBoot 生态,但这两名字太容易让人误解了. Solon-Boot So ...

  2. MP4 转 TXT 项目与 M3U8 下载脚本

    项目背景 在当今信息社会,视频学习已成为一种重要的知识获取方式.然而,许多用户在观看视频的过程中,效率往往低于预期.为了提升学习效率,我们决定开发一个将 MP4 视频转换为 TXT 文稿的项目.此外, ...

  3. Octave 安装教程

    Octave 用心写著. Octave为GNU项目下的开源软件.同时它也是一种语言,专注于解决线性计算问题.因为对于矩阵计算的优化,使得其速度远高于循环计算.语法兼容Linux shell. Octa ...

  4. SpringBoot数据访问,配置数据源

    配置文件目录 配置数据源jdbc版本 JDBC(.tomcat.jdbc.pool.DataSource作为数据源) <?xml version="1.0" encoding ...

  5. luogu P3842 [TJOI2007] 线段

    link 好题,考虑如何设定状态. 设\(dp_{i,0/1}\)表示到了第\(i\)行走完后停在这一行的最左侧/最右侧. 设定\(l_i\)表示这一行该线段的最左侧,\(r_i\)表示这一行的最右侧 ...

  6. SSM基础知识

    SSM整合 前面我们已经把Mybatis.Spring和SpringMVC三个框架进行了学习,那现在我们把这三个框架整合在一起,来完成我们的业务功能开发,具体如何来整合,我们一步步来学习. 流程分析 ...

  7. Slate文档编辑器-WrapNode数据结构与操作变换

    Slate文档编辑器-WrapNode数据结构与操作变换 在之前我们聊到了一些关于slate富文本引擎的基本概念,并且对基于slate实现文档编辑器的一些插件化能力设计.类型拓展.具体方案等作了探讨, ...

  8. 2023NOIP A层联测32 T3 sakuya

    2023NOIP A层联测32 T3 sakuya 虚伪的期望,彬彬赛时都能 A 的数学题. 思路 考虑算出来总的花费,再除以 \(m!\) 求期望. 对于某个排列的花费为:\(\sum\limits ...

  9. git rebase -i的时候用的不是 vi 编辑器是 nano编辑器不会用

    今天给同事 rebase 代码 发现 git fetch && git rebase -i origin/develop 的时候 出现了 那个 nano 编辑器的界面 不会用,和vim ...

  10. typescript 安装调试(二)

    一.安装ts-node 今天介绍另外一种更加方便的ts调试方式,需要安装以下几个库 第一个库是ts-node,这个库可以直接运行ts文件无需实时编译成js文件后再运行 安装命令  npm i ts-n ...