python post请求没有生成响应

时间:2018-06-10 11:09:19

标签: python forms post maps

我正在尝试创建一个python脚本,使用纬度和经度计算两个城市之间的距离。其中,我从用户处获取城市的名称,并使用此link查找坐标。 但是,当发布城市名称时,我无法生成响应(我将整个html作为响应)

import requests
city1=input("Enter the first city")
url="https://gps-coordinates.org/"
data={'address':city1}
r=requests.post(url,data=data)
print(r.status_code)
print(r.text)

1 个答案:

答案 0 :(得分:0)

据我所知,此页面没有提供API。 API可以轻松解析响应。由于他们没有API,您必须解析HTML并提取相关信息。由于页面本身仅使用Google地图查找位置,因此可能会很困难。

幸运的是,Google为此任务提供了一个API,即为给定名称的地点查找坐标的过程(通常称为地理编码)。 如果您执行的请求很少,您可以免费使用他们的API,在一定限度内您甚至不需要为他们设置帐户。

该流程已广泛描述here

对于您的用例,您可以轻松调整脚本:

import requests

city1 = input("Enter the first city")
url = "https://maps.googleapis.com/maps/api/geocode/json"
data = {"address": city1}
r = requests.post(url, params=data)
print(r.status_code)
print(r.text)

请注意,参数是通过查询字符串提供的。

如果您要执行多项请求,请务必设置帐户并发送包含您请求的API密钥,请参阅文档以获取相关说明。