最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

如何獲取一個城市全部的小區(qū)名稱、邊界、房價物業(yè)數(shù)據(jù)?

2021-05-06 23:54 作者:錦一爸爸  | 我要投稿


圖標


1 契機

大概是產(chǎn)品經(jīng)理的職業(yè)習慣,寫文檔前一定要說一下背景。

地圖poi數(shù)據(jù)查詢工具EasyPoi上線后,有些同學私信問我如何獲取一個城市的小區(qū)數(shù)據(jù)。

這個問題好簡單啊,因為EasyPoi就是專門解決這類問題的,你只需要直接在EasyPoi中根據(jù)小區(qū)的關鍵詞來搜索就可以解決了。

EasyPoi百度地圖版主界面


但又有同學提出來,他們想要小區(qū)的房價和戶數(shù)等數(shù)據(jù),那EasyPoi就無能為力了……

因為問的同學比較多,而且都是出于比較合理的理由:用于科研或者論文。

基于這個問題,我做了一些調(diào)研和研究,最終找到了解決方案,在這里,給大家分享一下。

2 選取數(shù)據(jù)源

術業(yè)有專攻,想要小區(qū)的房價數(shù)據(jù),自然是要到一些做的比較大的房產(chǎn)中介類的互聯(lián)網(wǎng)公司去找了。

在先后對比了鏈家、安居客、諸葛找房以及房天下等房產(chǎn)中介平臺后,最后選擇了鏈家,原因是鏈家的小區(qū)數(shù)據(jù)最全,房價數(shù)據(jù)也相對比較準確一些。


進而根據(jù)鏈家找房選擇了貝殼找房,可能有的同學還不清楚貝殼找房和鏈家找房之間的關系,我在這里大致說一下。

貝殼找房是一個房產(chǎn)中介服務平臺,除了自定的鏈家品牌外,里面入駐了許多其他的房產(chǎn)中介品牌如德佑、富房等加盟品牌。

打個比方,貝殼找房類似于京東平臺,鏈家找房就等同于京東自營,其他的加盟品牌就相當于一些第三方賣家。

貝殼的地圖找房和鏈家的地圖找房無論是前端頁面還是后端的技術架構幾乎都是一樣的。來看看貝殼的地圖找房長什么樣子,除了聚合的球形小氣泡顏色鏈家找房不同,看起來沒有什么不一樣。


3 技術方案

選擇了貝殼找房做為數(shù)據(jù)源后,新問題就來了:如何從貝殼找房上獲取一個城市全部的小區(qū)名稱和房價數(shù)據(jù)?

很多同學應該都想到了,使用爬蟲。

是的,從網(wǎng)頁上獲取數(shù)據(jù),目前似乎只有借助爬蟲的方式了。

爬蟲采集數(shù)據(jù)的方式有兩種:第一,直接解析網(wǎng)頁這是最簡單粗暴的方式,通過這種方式,理論上來說你在網(wǎng)頁上能夠看到的所有元素(文字、圖片、視頻等)都可以被采集到。第二,通過網(wǎng)站提供的api接口來獲取數(shù)據(jù)

可能還有同學還會追問,API是什么?

API是Application Programming Interface的簡稱,計算機專業(yè)術語為應用程序編程接口。

是不是有點難理解,打個比方吧。

你去超市買了杯酸奶,你付完錢后迫不及待地想喝了它。

于是你熟練地撕掉酸奶上的吸管包裝袋,將吸管插進牛奶盒,美美地喝了起來。

在這個過程中,吸管就相當于是一個API,它提供了一個你和牛奶進行交互的通道或者服務,通過這個吸管你就可以喝到牛奶了。

就像,百度地圖擁有豐富的poi數(shù)據(jù),他提供了一個名稱為place api的服務,你只需要調(diào)用這個服務,就可以獲取到百度地圖的poi數(shù)據(jù)了。


貝殼的示例接口,感興趣的同學可以將以下鏈接復制到瀏覽器地址欄里查看一下返回的數(shù)據(jù);


https://map.ke.com/proxyApi/i.c-pc-webapi.ke.com/map/bubblelist?cityId=110000&dataSource=ESF&condition=&id=&groupType=district&maxLatitude=40.07452554285216&minLatitude=39.75487666921912&maxLongitude=116.73445042767183&minLongitude=116.07329757232806

cityId: 城市的adcode dataSource: ESF,默認參數(shù),不用管 condition: 默認參數(shù),不用管id: 默認參數(shù),不用管 groupType: 聚合數(shù)據(jù)的類型,三級枚舉值,district表示返回城市的區(qū)縣聚合氣泡數(shù)據(jù),bizcircle表示返回區(qū)縣內(nèi)商圈的氣泡數(shù)據(jù),community表示返回商圈內(nèi)的小區(qū)數(shù)據(jù) maxLatitude: 當前可見的網(wǎng)頁矩形范圍內(nèi)的最大緯度 minLatitude: 當前可見的網(wǎng)頁矩形范圍內(nèi)的最小緯度 maxLongitude: 當前可見的網(wǎng)頁矩形范圍內(nèi)的最大經(jīng)度 minLongitude: 當前可見的網(wǎng)頁矩形范圍內(nèi)的最小經(jīng)度

確定了使用貝殼后臺的api接口后,我們來看下如何獲取整個城市的小區(qū)數(shù)據(jù),直接說分析結論了:通過以上分析我們可以看出來,每次通過地圖找房進行縮放時,就會獲取可視的矩形區(qū)域范圍內(nèi)的小區(qū)數(shù)據(jù),每次最多返回100條。

有的同學這會應該就明白過來了,這和EasyPoi獲取全部城市的原理是一樣的了:將整個城市看做一個矩形區(qū)域,然后分成一個個矩形區(qū)域,直到矩形區(qū)域內(nèi)返回的小區(qū)數(shù)量小于等于100個。有的同學可能 還沒有看明白,再來放一張圖,圖中數(shù)字皆為示例:


04

4 程序?qū)崿F(xiàn)

根據(jù)以上的原理,再來說明一下程序?qū)崿F(xiàn)的步驟:

1 獲取目標城市的行政區(qū)域邊界坐標例如以下是四川省成都市的行政區(qū)域坐標,是一個不規(guī)則的多邊形,我們需要獲取到多邊形邊界上的坐標點;目前高德地圖、百度地圖都有提供行政區(qū)域邊界坐標查詢功能;

2 根據(jù)行政區(qū)域坐標獲取多邊形邊界的外切矩形在地理區(qū)域中矩形區(qū)域,只需要左下角坐標和右上角坐標即可確定;

3 將獲取到的矩形區(qū)域使用遞歸程序進行分割,直到分割完成的矩形區(qū)域內(nèi)的小區(qū)數(shù)據(jù)數(shù)量小于等于100個這里我不在重復放矩形區(qū)域分割的圖片了,可以參考上面的圖片。

4 在最終獲取到的矩形區(qū)域內(nèi)采集小區(qū)數(shù)據(jù),并本地化存儲;運行截圖:

最終獲取到的數(shù)據(jù)部分截圖:

1【騰訊文檔】小區(qū)示例數(shù)據(jù)https://docs.qq.com/sheet/DYUx2YWVQVGVjUkpu



5 源碼獲取

上面已經(jīng)毫無保留地將采集原理和技術方案講清楚了,有編程基礎的同學,不管你使用python,go、ruby還是r語言應該都能輕松實現(xiàn)了。

也可能確實會有一些不懂編程的同學需要這些數(shù)據(jù),但這是一個爬蟲程序,而且是一個非常大規(guī)模采集的爬蟲程序,示例中天津的小區(qū)采集到了近2.2萬個小區(qū),如果全國的各個城市都跑下來的話,肯定是百萬級別的數(shù)據(jù)了,如果被濫用了,后果還是挺嚴重的。

所以源碼不會公開,這里僅做技術探討。

有需要小區(qū)的數(shù)據(jù)的同學可以給我私信,或者為weixin(soaringsoul)私聊我。


如何獲取一個城市全部的小區(qū)名稱、邊界、房價物業(yè)數(shù)據(jù)?的評論 (共 條)

分享到微博請遵守國家法律
衡水市| 宁明县| 蒲城县| 西平县| 平安县| 志丹县| 贡嘎县| 招远市| 晋宁县| 临武县| 溧阳市| 墨竹工卡县| 隆化县| 桐城市| 神农架林区| 介休市| 姜堰市| 梅州市| 华亭县| 石狮市| 东兰县| 开化县| 昌乐县| 屯昌县| 杨浦区| 弥渡县| 通城县| 旅游| 台江县| 新邵县| 将乐县| 长沙市| 阿勒泰市| 东阳市| 华安县| 高青县| 洪湖市| 额济纳旗| 垫江县| 东台市| 航空|