调用distance24距离查询API返回distance值为0的问题咨询
问题原因排查
- 该站点存在反爬校验,会拦截默认携带
python-requests标识的请求,返回包含distance: 0的错误响应数据。 - 原请求使用HTTP协议,目前该接口已强制走HTTPS协议,HTTP请求触发的重定向也可能导致参数传递异常。
修复方案
修改请求代码,补充合法浏览器User-Agent请求头,同时将请求地址替换为HTTPS协议即可:
import json import requests # 替换为HTTPS协议地址 url = 'https://www.distance24.org/route.json?stops=Hamburg|Berlin' # 补充浏览器UA请求头绕过反爬校验 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' } response = requests.request("GET", url, headers=headers) info = json.loads(response.text) print(info['distance'])
运行后即可输出汉堡到柏林的正确距离值255(单位为公里)。
内容的提问来源于stack exchange,提问作者joshblech
相关产品推荐
相关产品推荐

