Python 查询地理信息

看了 B站up主 应心小栈 的视频有感 应心小栈

一、高德地图

gaode

  1. 申请”Web服务API”密钥(key)
    链接
  2. 拼接HTTP请求URL
    这里选用的是【地理编码】
    修改address和key
  • address=<搜索的地址>
  • key=<用户的key>
    https://restapi.amap.com/v3/geocode/geo?address=<搜索的地址>&output=XML&key=<用户的key>
  1. 接收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

二、百度地图

baidu

  1. 申请”Web服务API”密钥(ak)
    链接
    Referer白名单: *
    Referer白名单:后面填写 * 否则会出现 message::APP Referer校验失败
  2. 拼接HTTP请求URL
    这里选用的是【地理编码】
    修改address和key
  • address=<搜索的地址>
  • key=<用户的key>
    http://api.map.baidu.com/geocoding/v3/?address=<搜索的地址>&output=xml&ak=<用户的key>
  1. 接收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

三、腾讯地图

tengxun

  1. 申请”Web服务API”密钥(key)
    链接
  2. 拼接HTTP请求URL
    这里选用的是【地理编码】
    修改address和key
  • address=<搜索的地址>
  • key=<用户的key>
    https://apis.map.qq.com/ws/geocoder/v1/?address=<搜索的地址>&key=<用户的key>
  1. 接收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
发布了36 篇原创文章 · 获赞 3 · 访问量 1743

猜你喜欢

转载自blog.csdn.net/qq_38689395/article/details/102629772