如何使用網路爬蟲抓取海量地址的 GPS 地理信息?
比如抓取某一個城市裡常見地名的經緯度信息,某某某小區、某某某飯店、某某某路10號等。
我能想到的幾個問題:
1.哪些網站可能包含大量這類經緯度信息?百度地圖?谷歌地圖?lbs/sns網站?團購類網站?2.gps地址可能需要進行轉換處理,據說很多網站gps是加密轉換過的,比如百度地圖。
3.適合的爬蟲框架推薦?
4.反反爬蟲機制?
問題很大很多,不知道有沒有人願意分享一點經驗。
1. 調用百度的API即可。基於你說的情況,應該需要的Place API及Geocoding API,個人開發者經過認證之後前者每天有10萬次的請求次數,後者有100萬次的請求次數,足夠你調用了。文檔在這裡:http://lbsyun.baidu.com/index.php?title=webapi
2. 由於某些原因,在國內大部分的應用使用的火星坐標或者百度坐標,有轉換方法。具體的坐標類型對應具體的SDK,顯示上沒有影響,但是確實不是準確的gps坐標。
3. 要啥自行車……現成API給你調用的話Python的urllib庫就行了。
4. 調用API不需要反反爬蟲機制。
1.哪些網站可能包含大量這類經緯度信息?百度地圖?谷歌地圖?lbs/sns網站?團購類網站?
地圖類: 百度地圖,谷歌地圖,搜狗,高德,搜搜,天地圖
O2O: 美團,點評,糯米
房地產: 搜房網,鏈家
地址解析提供商: GeoHey
等,只要你用心都能找到
2.gps地址可能需要進行轉換處理,據說很多網站gps是加密轉換過的,比如百度地圖。
這不重要不是嗎? 畢竟你都問到這一步了我想你不是程序員,也該有一個程序員
百度的經緯度轉換非常簡單,比較麻煩的是 搜狗的經緯度,用最笨的 格子方法也能破解
3.適合的爬蟲框架推薦?
最簡單的最合適自己的能滿足你自己的需求
因為大多數地圖廠商提供的API,所以你需要做的比較少,前期
後期你不滿足 地圖廠商的數據的時候,需要爬去其他網站的數據,
大多數 爬蟲框架的 機制大同小異 ,你可以搜一下scrapy,了解下,就可以動手做了
畢竟你問的這麼初級的問題,高大上的爬蟲機制,無非是 高可用,高可靠,高性能,
這些"高" 的前提是你有一個能跑的通的
4.反反爬蟲機制?
你需要代理IP ,並且維護好一個 代理IP池,對於有爬蟲限制的網站,你需要溫柔點,摸清楚他的脾氣,
當然能付費最好,如果不能,買IP,買IP ,儘可能的讓自己是個真實用戶
@周煦辰已經提到了可行方法。補充一點:
1、POI的數據量大約是2000萬,可以申請多個AK分別來跑;
2、你是拿不到原始GPS坐標的,如果通過非官方的途徑做了數據糾偏,那麼只能私下自己用,如果通過各種途徑傳播,小心國安局請你喝茶;
3、天地圖發布的數據是GPS坐標,不過是導航數據,精度不高,可以直接用JS抓取使用。
完全外行。路過扯一句。如果想知道國內所有石獅子的GPS位置的話,可以考慮ingress
國內的不清楚,美國有個網站叫foursquare(https://foursquare.com/),提供的API很全面,你可以在一個城市內均勻選取若干個點,然後用range query獲得範圍內的venues。 之前用來獲取洛杉磯所有商家的信息,包括公園等地標。坐標存在不準確的問題,但是對於提供詳細地址的venue可以用一些Geocoder的API重新確定坐標,如http://geocoding.geo.census.gov/。
推薦閱讀:
※gis如何在實際的設計規劃項目中進行應用 gis在設計中起到了什麼作用?
※如何解讀 2017 年10 月 3 日公布的馬航 MH370 搜索報告?
※遙感圖像處理和普通圖像處理有哪些異同呢,本質區別是什麼?
※為什麼巴拿馬運河東西兩側(大西洋和太平洋)海平面高度相差很大?求一個比較說得過去的解釋!?