之前发布过一篇用python 获取天地图地址坐标的文章
python调用地图api将批量地址转成坐标_ou4582850的博客-CSDN博客
最近上csdn,看到有评论说使用有问题,于是将代码调试一下,发现确实无法正常获取
首先确认了天地图的接口文档上是否有发生过变化。
看了一下接口没有任何变化,还是一个get请求,query里传入对应的地址。
我的代码之前是这样获取地址的,就简单的使用get请求去调用天地图的api
返回的结果却是403:
在浏览器里直接请求url,又是能拿到结果
于是猜测是不是请求的header里要加上某些值才行,于是用浏览器开发者工具查看,发现可能有两个值会影响这个,一个是我们的user-Agent,还有一个是Cookie,其他的感觉都不太影响我们的请求。
于是我将header加上这两个值
可以看出加了这两个请求头,就能正常获取到地址对应的坐标。user-Agent应该是服务端用做是否是浏览器发的请求的依据,HWWAFSESID 不清楚是什么,为什么加上这个就可以了。
于是查了一下,发现是华为的WAF给加上的;大体就是防护域名/IP接入WAF后,WAF会在客户请求Cookie中插入HWWAFSESID,HWWAFSESTIME等字段,这些字段服务于WAF统计和安全特性,不影响用户业务。