Python脚本来查询谷歌地图,并得到由此产生的URL
问题描述:
说我想在谷歌地图中搜索“白宫”。得到的URL将是“https://www.google.com/maps/place/The+White+House/@38.8976805,-77.0387185,17z/data=!3m1!4b1!4m5!3m4!1s0x89b7b7bcdecbb1df:0x715969d86d0b76bf!8m2!3d38.8976763!4d-77.0365298”。我想在python中模拟这个。我会如何去做这件事?所以理想情况下,我会通过“白宫”并打印出结果网址。Python脚本来查询谷歌地图,并得到由此产生的URL
我的最终目标是从地名找到坐标。
答
我想找到坐标
你可以刮它是这样的:
import requests
import ast
def google_maps(req):
req.replace(' ','+')
uri = 'https://www.google.com/maps/place/'
url = uri+req
ret = requests.get(url).text
scrape = '['+ret.split('cacheResponse([[')[1].split(',[')[0].split(',',1)[1]
location = ast.literal_eval(scrape)
print location
google_maps('the white house')
>>>
[-77.0365298, 38.8976763]
获得通过请求返回的数据更好的感觉,你可以这样做:
print ret[:10000]
获取前10000个字符,您将在其中找到以第一个字符开头的前缀分裂()操作:
cacheResponse([[
同样:
google_maps('the pentagon')
>>>
[-77.0562669, 38.8718568]
google_maps('the golden gate bridge')
>>>
[-122.4782551, 37.8199286]
etc.
+1
为什么不接受此答案? – oshaiken
您可以使用请求,究竟什么是你想怎么办? – oshaiken
https://developers.google.com/maps/documentation/directions/start – oshaiken
我有一堆非常混乱的地址/地点名称,我想查找坐标。地图API的地理编码部分已折旧,所以这是我能想到的唯一解决方案 – lena