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

在爬虫的执行当中,总会遇到请求连接超时的情况,下面的代码块是在请求超时的情况下,捕捉超时错误并连续发送多次请求,只到请求连接成功。

NETWORK_STATUS = True # 判断状态变量
try:
    response = requests.post(url, headers=self.headers, data=data, timeout=5)
    if response.status_code == 200:
        return response
except requests.exceptions.Timeout:
    global NETWORK_STATUS
    NETWORK_STATUS = False # 请求超时改变状态

if NETWORK_STATUS == False:
        ‘‘‘请求超时‘‘‘
        for i in range(1, 10):
            print ‘请求超时,第%s次重复请求‘ % i
            response = requests.post(url, headers=self.headers, data=data, timeout=5)
            if response.status_code == 200:
                return response
return -1  # 当所有请求都失败,返回  -1  ,此时有极大的可能是网络问题或IP被封。

原文地址:http://www.cnblogs.com/fanjp666888/p/8022282.html

时间: 2024-07-30 06:42:28

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

python爬虫---scrapy框架爬取图片,scrapy手动发送请求,发送post请求,提升爬取效率,请求传参(meta),五大核心组件,中间件

# settings 配置 UA USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36' 一丶scrapy的图片数据爬取(流数据的爬取) ? scrapy中封装好了一个管道类(ImagesPipeline),基于该管道类可以实现图片资源的请求和持久化存储 编码流程: 爬虫文件中解析出图片的地址 将

解决python爬虫requests.exceptions.SSLError: HTTPSConnectionPool(host='XXX', port=443)问题

爬虫时报错如下: requests.exceptions.SSLError: HTTPSConnectionPool(host='某某某网站', port=443): Max retries exceeded with url: /login/ (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify fail

Python 爬虫—— requests BeautifulSoup

本文记录下用来爬虫主要使用的两个库.第一个是requests,用这个库能很方便的下载网页,不用标准库里面各种urllib:第二个BeautifulSoup用来解析网页,不然自己用正则的话很烦. requests使用,1直接使用库内提供的get.post等函数,在比简单的情况下使用,2利用session,session能保存cookiees信息,方便的自定义request header,可以进行登陆操作. BeautifulSoup使用,先将requests得到的html生成BeautifulSo

Python 爬虫案例-web微信登陆与消息发送

首先回顾下网页微信登陆的一般流程 1.打开浏览器输入网址 2.使用手机微信扫码登陆 3.进入用户界面 1.打开浏览器输入网址 首先打开浏览器输入web微信网址,并进行监控: https://wx.qq.com/ 可以发现网页中包含了一个新的url,而这个url就是二维码的来源. https://login.weixin.qq.com/qrcode/wbfd1Z-a0g== 可以猜测一下获取url的一般网址就是https://login.weixin.qq.com/qrcode,而wbfd1Z-a

爬虫的概述以及使用(request发送请求)

一.使用request发送请求        安装:pip install requests(cmd命令行下执行) 二.requests的基本使用 import requests url = "http://www.baidu.com" res = requests.get(url) print(res.encoding) print(res.headers) #里面如果没有Content-Type,encoding=utf-8 ,否则如果charset,就以设置为准,否则就是ISO-

python爬虫---requests库的用法

requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装 pip install requests 安装完成后import一下,正常则说明可以开始使用了. 基本用法: requests.get()用于请求目标网站,类型是一个HTTPresponse类型 import requests response = requests.get('http://www.baidu.com')print(response.status_c

python爬虫-requests

Requests库是目前常用且效率较高的爬取网页的库 1.一个简单的例子 import requests #引入requests库r = requests.get("http://www.baidu.com") #调用get方法获取界面print(r.status_code) #输出状态码print(r.text) #输出页面信息 通过以下代码,便可获取一个response对象 2.通用代码框架 import requests def getHtmlText(url): try: r

python爬虫requests过程中添加headers

浏览器中打开页面,以edge为例,点击"查看源"或F12 第一步:点击上图中"网络"标签,然后刷新或载入页面 第二步:在右侧"标头"下方的"请求标头"中的所有信息都是headers内容,添加到requests请求中即可 代码示例如下: headers = {'Accept': 'text/html, application/xhtml+xml, image/jxr, */*', 'Accept - Encoding':'gzi

python 爬虫 requests+BeautifulSoup 爬取巨潮资讯公司概况代码实例

第一次写一个算是比较完整的爬虫,自我感觉极差啊,代码low,效率差,也没有保存到本地文件或者数据库,强行使用了一波多线程导致数据顺序发生了变化... 贴在这里,引以为戒吧. # -*- coding: utf-8 -*- """ Created on Wed Jul 18 21:41:34 2018 @author: brave-man blog: http://www.cnblogs.com/zrmw/ """ import requests