世界國家省份城市縣區街道村地址郵編常用通用功能最全API - 多級聯動 - 淘寶天貓阿里巴巴技術賞析 原

請登錄購買寶貝併到結帳頁面

http://unit.buy.tmall.com/order/confirmOrder.htm

當到這個頁面後,你會發現這個頁面是個iframe(框架),單擊右鍵可以輕鬆知道配送地址功能的界面URL

http://member1.taobao.com/member/fresh/deliver_address_frame.htm?sign=_a2_wr_qwv6w_f_rd_zu8cp_i_w_zj9_x_jms_k_g_z_y7_z_d_l0v_p_ec_v_ai_i%252F0_dd0_j_g_u4v_a%253D%253D&from=tmall&reurl=%2F%2Fbuy.tmall.com%2Forder%2FaddressProxy.htm&version=1.0.10&sign_type=TEP&tid=74126668

OK,看到這個界面,大家就可以單擊右鍵,把淘寶的源碼保存下來了

節省了自己寫HTML代碼的時間:

通過火狐FireBug,可以查看到類似JS文件:

http://g.tbcdn.cn/tbc/??address/1.2.1/xaddress/index-min.js?t=1432885222614.js

複製上述內容

JS格式化工具格式化JS文件內容,輔助Unicode編碼轉換

(如北京的Unicode編碼是\u5317\u4eac),更清楚的看到很多驚喜的接口API,根據URL參數地址,相信聰明的你肯定知道其各自作用:

OK,主要JS文件就在這邊

自己可以順着這個路線具體研究淘寶地址實現邏輯了,也可以間接使用JS(省得自己寫JS了)

地址多級聯動API

打開火狐firebug或者IE瀏覽器按F12快捷鍵,當你在選擇:中國大陸->北京->東城 時候,會發現URL

http://lsp.wuliu.taobao.com/locationservice/addr/output_address_town_array.do?l1=110000&l2=110100&l3=110101&lang=zh-S&_ksTS=1432880083437_7507&callback=jsonp7508

上述API只要接收幾個必要參數即可,請按照上述圖片中獲取所有省、市、縣的各自CODE值,然後循環賦值參數給這個接口拼接爲新的URL

就像採集一樣,就可以批量瞬間得到全國具體物流信息 鄉、區、村這種具體的物流數據,愉快的保存到您的數據庫吧!

你也可以把淘寶這個API當成您的“私人”API使用!而且速度更快,更穩定!節省你的可憐寬帶、CPU、內存...

享受下站在巨人肩膀上的樂趣吧!

總結

  1. 地址大部分數據都是固定不變的(如省份、市、縣),我們可以“寫死”在JS文件中靜態加載
  2. 靜態js文件只需加載1次,以後用戶瀏覽器自動使用本地使用緩存文件
  3. 也可以做個程序按需手動生成“address.js"的程序,比如某個省改名了
  4. 千萬不要再去多此一舉的去連接數據庫,否則會增大數據庫壓力浪費寬帶資源...
  5. 如果地址配送想做的更細,如:針對鄉、區、村這種變更率稍大的字段,可以借鑑淘寶那種做成API的Ajax按需請求URL
  6. 針對上述的API數據獲取,服務端有可能是從數據庫中獲取數據,也有可能是從靜態文件中篩選出數據(參考上述第3條)
  7. 細心的同學通過查看淘寶源碼可以發現有很多規範可以學習參考:HTML寫法、驗證電話號碼&區號的正則、城市區號對照、HTML5的運用、壓縮的處理...有些可以直接拿來用!
  8. 不需要到處盲目的找“規範”,淘寶就是規範!因爲他們都是經過嚴格面試的!站在巨人的肩膀上,學習淘寶,取其精華取其糟粕,假以時日,你就是高手!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章