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