Python爬取全國POI資料:購物中心、餐飲、賓館、銀行、景區、快遞點和各大品牌店經緯度等資料(GeoQ)

qq_32231883發表於2019-03-24

上一篇文章寫了如何獲取人口等格網資料 利用Python爬取全國250m精度的人口資料(GeoQ)、房價資料和公交站(線路)等資料,這一篇文章我們接著去獲取剩下的poi資料和品牌資料。該網站還有如下的poi資料,其中有很多poi資料是高德百度poi所沒有的,而且已經分好了類,比如各大品牌的poi資料。

標題
標題

 如上圖所示,放大到最後可以看到poi點的位置和屬性資訊,接下來進行抓包分析:

 抓完包之後即可進行資料抓取,大家仍然可以從我建立的網址裡進行抓包分析和爬取  我建立的購物專題POI

# -*- coding: utf-8 -*-
"""
Created on Sun Mar 24 15:58:04 2019

@author: 武狀元
"""
import requests
import json
import pandas as pd
import time 

#地圖範圍 73.063112,2.995764,135.172386,53.802238
values={
       "extent":"121.45351409912111,31.24634230767628,121.48123741149904,31.205827577303502",
       "indexes":"050101,050102,050103,050104",
       "scale":"36111.909643"
    }

url='https://editor.geoq.cn/editormobile/proxy.do?type=ThematicService&handle=cluster/view'
response = requests.request('POST', url, data=values)
print(response.url)
datas=response.text
dictdatas=json.loads(datas)
results=dictdatas['results']
r1=results['050101']
r2=results['050102']
r3=results['050103']
r4=results['050104']

print(dictdatas)

time.sleep(0.001)
c1 = pd.DataFrame(r1)
c1.to_json('購物中心poi.json')
c2 = pd.DataFrame(r2)
c2.to_json('母嬰用品poi.json')
c3 = pd.DataFrame(r3)
c3.to_json('農貿市場poi.json')
c4 = pd.DataFrame(r4)
c4.to_json('藥店poi.json')

原理和上一條部落格一樣,只不過這次是一次性抓了四中型別資料

 

 如上只是講解了原理,抓取了部分資料。至於如何抓取全國的資料,則需要注意反爬措施,還有找到抓取範圍、地圖尺度和抓取poi種類的規律,最後迴圈一圈即可。

歡迎大家交流討論 QQ:3271088075(驗證訊息CSDN)

 微信公眾號:中原百科(寫文章比較隨意,愛好為主)

 

相關文章