您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關大數據中如何批量獲取指定地址的經緯度信息,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
抓包
打開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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。