Python爬虫系列之三:根据名称爬取经纬度信息并Geohash编码
# coding: utf-8
# ## 主要实现
# - 批量查询位置点 经纬度等信息
# - 经纬度转换为 geohash块
# ### Note
# - 查询位置列表, 需<font color=#FF1953>提前提供</font>
# In[5]:
city_lis=['北京', '上海', '郑州']
# ### 获取位置地点经纬度等信息
# - 获取经纬度等信息
# - 计算 geohash
# In[6]:
import pandas as pd
import mzgeohash
import urllib2
import urllib
import json
# In[23]:
'''
根据位置名称,获取经纬度等信息
'''
def get_metas_from_baidu(city):
metas={}
metas['key']='f247cdb592eb43ebac6ccd27f796e2d2'
metas['address']=city # 城市名称
data=(metas)
url='/geocoder?output=json&'+(metas)
# 注释 url='/geocoder?'+(metas)+'&output=json'
unicode_s=(url)
return (unicode_s.read())
city_meta_lis=[] # 计算 geohash 编码并存储
for city in city_lis:
tmp=get_metas_from_baidu(city)
latitude=tmp['result']['location']['lat']
longitude=tmp['result']['location']['lng']
t_geohash=((longitude,latitude)) # 使用mzgeohash 计算geohash
city_meta_lis.append([city,latitude,longitude,t_geohash]) # 存储
# In[24]:
# 格式化输出
df=(city_meta_lis, columns=['city','latitude','longitude','geohash'])
df