如何批量查詢地址經緯資訊?
抓包
- 打開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')
PS:如有需要Python學習資料的小伙伴可以加下方的群去找免費管理員領取
可以免費領取原始碼、專案實戰視頻、PDF檔案等
本文的文字及圖片來源于網路,僅供學習、交流使用,不具有任何商業用途,著作權歸原作者所有,如有問題請及時聯系我們以作處理,
作者:大鄧和他的python
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/47285.html
標籤:Python
