最最最簡單從政府官方獲取最新省市縣聯動資料

monkeyhi發表於2020-11-29

本文是好長時間前寫的,想著邊操作邊記錄,結果… 大家也知道——失敗了!!!
原因就是:有人在github上開源了最新最全的資料,自己便放棄倒騰了,抓緊時間覆命去了,以下本想著刪掉,但還是於心不忍,作為一個失敗的經歷發出來。

本文只是獲取到省市縣的 JSON 結構的字串,並無後續處理資料
不喜歡看的就直接拉到最後

我的需求場景

專案需要獲取省市縣聯動,行政隸屬規劃今年也變動頻繁,但現在沒有最新的資料集。資料採集我也不會啊(暗自流淚)。
我現在的問題是怎麼獲取比較權威的最新資料,網上點點點終於找到這種投機取巧的方式——從政務網獲取。
全國行政區劃資訊查詢平臺http://xzqh.mca.gov.cn/map

注意事項

若網站結構變更的話就不是本文的適用範圍了(都是扯淡,反正失敗了)

該網站頁面分析

點開頁面可以看到如下圖所示,頁面js也是沒有壓縮,可以很好的分析它渲染的邏輯。
政府網頁面展示

獲取級聯資料

發現資料

可以看到頁面提供了一個檢索功能,輸入一個字元下拉框會立馬渲染出符合該字元的選項。

所以只需要獲取行政區劃碼和區劃名稱等其他相關資訊就能滿足我的需求

資料結構分析

另外行政區劃碼是有規律的:詳情百度百科

第一、二位表示省(自治區、直轄市、特別行政區)。
第三、四位表示市(地區、自治州、盟及國家直轄市所屬市轄區和縣的彙總碼)

{cName: "北京市", code: "110000", py: "Beijing Shi", jp: "bjs", qp: "BeijingShi"}

右鍵檢查一下調出開發工具,可以看到如下,注意一下框選的內容
開發工具介面
該 form 是檢索的 form 控制元件,其中隱藏的 input 控制元件的值就是全部是級聯資料(納尼!!刊-單是滴<かんたんすぎ>)

到此不敢相信自己的眼睛,

開搞開搞

  • 其詳細細節如下圖
    在這裡插入圖片描述
  • 檢查是否支援jQuery,控制檯輸入『$ 』 然後按回車 。喔~~支援
  • 發現這個 input 居然有 id,其 id 值是 ”pyArr“
  • 使用 $("#pyArr").val() 就能獲取到字串為,資料結構為 JSON 的資料了
    接下來就是瞎折騰這 3213 條資料。
var str = $("#pyArr").val();
var arrjson = JSON.parse(str);
arrjson.length
arrjson[0]

獲取村級資料

我無能為力,github 上有 modood 大神給出了資料

https://github.com/modood/Administrative-divisions-of-China

不喜歡看專案只想打包下載資料的可直接下載 sqllite3檔案 data.sqllite (使用 Navicat 可直接開啟)

相關文章