爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7836|回复: 0

[混合编程] [已收纳]python之重复请求网页,requests.get的加强版

[复制链接]

新浪微博达人勋

发表于 2020-7-10 14:43:45 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 15195775117 于 2021-1-31 17:44 编辑

1、需求缘起

今天用高德地图接口转换坐标时,出现了几次网络响应超时的情况,
于是我想着怎么失败后再次请求?

于是我参考网上的帖子,写了一个getHtml,该模块用于多次请求网页,避免一次失败就报错
getHtml可视作requests.get的加强版

2、代码


import requests
import json
from requests.adapters import HTTPAdapter

def getHtml(url):
    s = requests.Session()
    s.mount('http://', HTTPAdapter(max_retries=5))#最多请求5次
    s.mount('https://', HTTPAdapter(max_retries=5))#最多请求5次

    try:
        r = s.get(url, timeout=5)#超时5秒
        return r
    except:
        return 0

if __name__ == "__main__":
    key='***************************'#高德地图web开发K码
    staticMap='https://restapi.amap.com/v3/geocode/regeo?'+\
        'key='+key+\
        '&location=116.481488,39.990464&poitype=商务写字楼&radius=1000&extensions=all&batch=false&roadlevel=0'
    result=getHtml(staticMap)
    if result == 0:
        print('没有响应')
    else:
        x=json.loads(result.text)
        print(x['status'])

结果:1

参考帖子如下:
requests 详解超时和重试

python捕获异常的方法见我的帖子:python之异常处理



评分

参与人数 1金钱 +5 收起 理由
little卓忘密码 + 5 很给力!

查看全部评分

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表