本篇文章给大家分享的是有关大数据中如何批量获取指定地址的经纬度信息,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
抓包
打开https://jingweidu.51240.com/
F12键(mac电脑快捷键option+command+I)打开开发者工具Network面板
搜索框输入查询地址,回车查询
开发者工具Network会看到截图中的网址
点击Preview,能看到具体信息
1. 经纬度查询爬虫函数query
1. 根据抓包分析,构造网址模板template
2. 使用requests库发起访问
3. 使用正则表达式re库解析出经纬度信息
import requests def query(addr): #查询addr的经纬度 template = 'https://apis.map.qq.com/jsapi?qt=geoc&addr={addr}&key=UGMBZ-CINWR-DDRW5-W52AK-D3ENK-ZEBRC&output=jsonp&pf=jsapi&ref=jsapi&cb=qq.maps._svcb2.geocoder0' url = template.format(addr=addr) resp = requests.get(url) x = re.findall('pointx":"(.*?)",',resp.text)[0] y = re.findall('pointy":"(.*?)",',resp.text)[0] return x,y query(addr="山东省潍坊市安丘市兴安街道")
('119.161423', '36.331699')
2. 测试数据
import pandas as pd df = pd.read_csv("test.csv") df
companyaddr0公司A山东省潍坊市安丘市兴安街道1公司B浙江省杭州市萧山区2公司C广东省广州市番禺区3公司D陕西省西安市莲湖区
df['addr']
0 山东省潍坊市安丘市兴安街道 1 浙江省杭州市萧山区 2 广东省广州市番禺区 3 陕西省西安市莲湖区 Name: addr, dtype: object
3. 批量查询
对选中的addr列,使用apply方法调用query函数批量查询经纬度
df['经纬度']=df['addr'].apply(query) df
0 (119.161423, 36.331699) 1 (120.264570, 30.185340) 2 (113.384240, 22.937720) 3 (108.940200, 34.267030) Name: addr, dtype: object
4. 保存
df['经纬度']=df['addr'].apply(query) df
companyaddr经纬度0公司A山东省潍坊市安丘市兴安街道(119.161423, 36.331699)1公司B浙江省杭州市萧山区(120.264570, 30.185340)2公司C广东省广州市番禺区(113.384240, 22.937720)3公司D陕西省西安市莲湖区(108.940200, 34.267030)
5. 导出csv
结果导出到csv中
df.to_csv('result.csv')
以上就是大数据中如何批量获取指定地址的经纬度信息,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。