没有合适的资源?快使用搜索试试~ 我知道了~
python调用百度地图WEB服务API获取地点对应坐标值
12 下载量 125 浏览量
2020-12-25
03:56:56
上传
评论
收藏 67KB PDF 举报
温馨提示
本篇博客介绍如何使用Python调用百度地图WEB服务API获取地点对应坐标值,现有一系列结构化地址数据(如:北京市海淀区上地十街十号),目的是获取对应坐标值。 百度地图开发者平台路线规划使用说明网址 最终结果是写入了txt文件,所以需要在循环遇到错误的时候写入对应的可识别的值(看到这个值就知道这个结果是错误的,可以写对应数量的NA或者0值),方便后续分析。 # -*- coding: utf-8 -*- """ Created on Fri Aug 15 10:06:16 2018 @author: zjp Python3.6.6 """ # 加载必要的包 import csv impor
资源推荐
资源详情
资源评论
python调用百度地图调用百度地图WEB服务服务API获取地点对应坐标值获取地点对应坐标值
本篇博客介绍如何使用Python调用百度地图WEB服务API获取地点对应坐标值,现有一系列结构化地址数据(如:北京市海淀
区上地十街十号),目的是获取对应坐标值。
百度地图开发者平台路线规划使用说明网址
最终结果是写入了txt文件,所以需要在循环遇到错误的时候写入对应的可识别的值(看到这个值就知道这个结果是错误的,
可以写对应数量的NA或者0值),方便后续分析。
# -*- coding: utf-8 -*-
"""
Created on Fri Aug 15 10:06:16 2018
@author: zjp
Python3.6.6
"""
# 加载必要的包
import csv
import json
import time
import requests
from bs4 import BeautifulSoup
origin_path = 'E://GetRoute/HuaNan/中文地址.csv' # 原始数据文件路径
new_path = 'E://GetRoute/HuaNan/地址对应坐标.txt' # 爬取数据文件保存路径
url_geocode = r'http://api.map.baidu.com/geocoder/v2/?' # 百度地图api网址
AK = ['oFCSeioUzdN5NfzSlBBXqBEfXgp26mGM', 'Akqk5xjbSGzy1WC1IUF04K2CQWGtOFNv',
'HCdq1Ry35rwgVQwjAXqAEQGzWNY7pi1h',
'GtOZERwlG0PynPwFrBYaF9wWcAGxvaw8', 'iRKkZehZimIWdGoxfjlbtLrYb0VVgVaD',
'gG0KIBhAGpAVvaRUlwFjmOtsTKGRK2tf',
'CSsyosiklqyYUDNnBP0BR63fa9BzCHFf', 'mq4TZshHveVqML3icCC6AWnS25rbjYBz',
'rBYetA6WQNOlXtQWInz8ckRE0iCDsUjB',
'QUshHD8KUAk8y9gLwDhQ6RyOgQxEB8VD', '7Ict6oZmpAYYXMjha2Tk5g4ENTCYwx03'] # 开发者应用密钥
cod = r'&ret_coordtype=bd09ll' # 坐标类型(设置为百度坐标)
machine_data = csv.reader(open(origin_path, 'r', encoding='utf-8')) # 读取原始文件数据
n = 0
akn = 0
column_names = '设备序列号 取点方式1 准确度1 网点纬度 网点经度 网点名称 取点方式2 准确度2 安装地址纬度 安装地址经
度 安装地址 取点 准确度 最佳纬度 最佳经度 安装方式 最佳地址'
with open(new_path, 'a', encoding='utf-8') as f: # 把变量名写入新文件
f.write(column_names)
f.write('')
f.close()
while True:
try:
for addr in machine_data: # 循环爬取每一条数据
province = str(addr[0]) # 省份
city = str(addr[1]) # 城市
mac = str(addr[2]) # 设备序列号
wd = str(addr[3]) # 网点名称
anz = str(addr[4]) # 安装地址
anz_type = str(addr[5]) # 安装类型
add1 = province + city + wd
add2 = province + city + anz
if akn < len(AK): # AK配额还没用完时
n += 1
aknd = AK[akn] # 第akn个秘钥是aknd
ak = r'&output=json&ak=' + aknd
address1 = r'address=' + add1
tar_url = url_geocode + address1 + ak + cod # 最终url网址
response = requests.get(url=tar_url) # 请求网址响应
soup = BeautifulSoup(response.content, 'html.parser') # 解析网页内容
response.close() # 获取内容后关闭网页(防止被远程主机认定为攻击行为)
dictinfo = json.loads(str(soup)) # json数据转dict数据
status = dictinfo['status'] print(status)
if status == 0: # status状态码为0表示服务器响应成功,本次循环爬取数据成功
资源评论
weixin_38668754
- 粉丝: 3
- 资源: 972
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功