| 
 
	积分3625贡献 精华在线时间 小时注册时间2014-10-21最后登录1970-1-1 
 | 
 
| 
本帖最后由 15195775117 于 2021-1-31 17:44 编辑
x
登录后查看更多精彩内容~您需要 登录 才可以下载或查看,没有帐号?立即注册 
  
 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之异常处理
 
 
 
 
 | 
 评分
查看全部评分
 |