看了 B站up主 应心小栈 的视频有感 应心小栈
一、高德地图
- 申请”Web服务API”密钥(key)
链接 - 拼接HTTP请求URL
这里选用的是【地理编码】
修改address和key
- address=<搜索的地址>
- key=<用户的key>
https://restapi.amap.com/v3/geocode/geo?address=<搜索的地址>&output=XML&key=<用户的key>
- 接收HTTP请求返回的数据(JSON或XML格式),解析数据。
# _*_coding:utf-8
import re
import requests
from bs4 import BeautifulSoup
base_url = 'https://restapi.amap.com/v3/geocode/geo?address='
#填写key
fun_url = '&output=XML&key='
address = '北京大学'
url = base_url + address + fun_url
response = requests.get(url)
soup = BeautifulSoup(response.text,'lxml')
location_source = str(soup.find('location'))
location_down = re.split('<|>',location_source)[2]
location_out = re.split(',',location_down)
longitude = location_out[0]
latitude = location_out[1]
print('经度为:{} 纬度为:{}'.format(longitude,latitude))
>>> 经度为:116.308264 纬度为:39.995304
二、百度地图
- 申请”Web服务API”密钥(ak)
链接
Referer白名单: *
Referer白名单:后面填写 * 否则会出现 message::APP Referer校验失败 - 拼接HTTP请求URL
这里选用的是【地理编码】
修改address和key
- address=<搜索的地址>
- key=<用户的key>
http://api.map.baidu.com/geocoding/v3/?address=<搜索的地址>&output=xml&ak=<用户的key>
- 接收HTTP请求返回的数据(JSON或XML格式),解析数据。
# _*_coding:utf-8
import re
import requests
from bs4 import BeautifulSoup
base_url = 'http://api.map.baidu.com/geocoding/v3/?address='
#填写ak
fun_url = '&output=xml&ak='
address = '北京大学'
url = base_url + address + fun_url
response = requests.get(url)
soup = BeautifulSoup(response.text,'lxml')
location_lng = str(soup.find('lng'))
location_down_lng = re.split('<|>',location_lng)
longitude = location_down_lng[2]
location_lat = str(soup.find('lat'))
location_down_lat = re.split('<|>',location_lat)
latitude = location_down_lat[2]
print('经度为:{} 纬度为:{}'.format(longitude,latitude))
>>> 经度为:116.304152442 纬度为:39.9670892266
三、腾讯地图
- 申请”Web服务API”密钥(key)
链接 - 拼接HTTP请求URL
这里选用的是【地理编码】
修改address和key
- address=<搜索的地址>
- key=<用户的key>
https://apis.map.qq.com/ws/geocoder/v1/?address=<搜索的地址>&key=<用户的key>
- 接收HTTP请求返回的数据(JSON或XML格式),解析数据。
# _*_coding:utf-8
import re
import requests
from bs4 import BeautifulSoup
base_url = 'https://apis.map.qq.com/ws/geocoder/v1/?address='
fun_url = '&output=xml&key=VOHBZ-X37RO-WVBWY-SQXFG-4XJ73-ACBYI'
address = '北京大学'
url = base_url + address + fun_url
response = requests.get(url)
location_text = response.text
longitude = re.findall("lng\": (.*?),",location_text)[0]
latitude = re.findall("lat\": (.*?)\n",location_text)[0]
print('经度为:{} 纬度为:{}'.format(str(longitude),str(latitude)))
>>> 经度为:116.310249 纬度为:39.99287