撸了一个查询全球所有城市的 API,提供给大家使用,望轻拍。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
larkifly
V2EX    Python

撸了一个查询全球所有城市的 API,提供给大家使用,望轻拍。

  •  4
     
  •   larkifly 2015-09-14 01:03:58 +08:00 16153 次点击
    这是一个创建于 3679 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为工作的需要,找了半天都没找到,索性,自己撸了一个,目前只有中文和英文版。

    数据来源

    在此感谢鹅厂,所有的数据都是从鹅厂注册页面获取到的

    github

    演示地址

    截图

    使用方法:

    • 输入国家名称,获取到国家 ID
    • 输入省,获取到国家和省 ID
    • 输入城市,获取到国家、省和市 ID

    城市信息分为中文和英文,所以每个接口得传个语言参数

    API

    url = 'http://tools.bugcode.cn'

    根据城市名字获取城市 ID
    r = requests.post (url+'/cities/search', {'country': '中国', 'language': 'cn', 'province': '江苏', 'city': '淮安'}) if r.status_code == 200: print r.text else: print r.status_code 
    根据城市 ID 获取城市名字
    • 获取所有国家

      r = requests.post (url+'/cities/search', {'action': 'countries', 'language': 'cn'}) if r.status_code == 200: print r.text else: print r.status_code 
    • 获取一个国家所有省份

      r = requests.post (url+'/cities/search', {'action': 'provinces', 'language': 'cn', 'c_id': 1}) if r.status_code == 200: print r.text else: print r.status_code 
    • 获取一个国家一个省所有城市

      r = requests.post (url+'/cities/search', {'action': 'cities', 'language': 'cn', 'c_id': 1, 'p_id': 32}) if r.status_code == 200: print r.text else: print r.status_code 
    • 获取一个国家一个省一个城市

      r = requests.post (url+'/cities/search', {'action': 'city', 'language': 'cn', 'c_id': 1, 'p_id': 32, 'i_id': 8}) if r.status_code == 200: print r.text else: print r.status_code 
    42 条回复    2018-09-30 10:11:00 +08:00
    EnderSodium
        1
    EnderSodium  
       2015-09-14 01:05:04 +08:00
    地址呢?
    larkifly
        2
    larkifly  
    OP
       2015-09-14 01:05:36 +08:00
    @EnderSodium 你好快,我还没编辑好了
    linoder
        3
    linoder  
       2015-09-14 01:05:37 +08:00
    这种都是私有的
    larkifly
        4
    larkifly  
    OP
       2015-09-14 01:09:00 +08:00
    @linoder 对了,网上找到数据源了,就整理了一下,拿出来和大家共享
    secret32
        5
    secret32  
       2015-09-14 09:51:32 +08:00
    为什么满版的 undefined
    Nan7Huang
        6
    Nan7Huang  
       2015-09-14 09:52:26 +08:00
    满屏尽带 undefined
    ltttx
        7
    ltttx  
       2015-09-14 09:55:22 +08:00
    用 GET 更好点
    lxw322
        8
    lxw322  
       2015-09-14 10:57:19 +08:00
    已被鹅厂屏蔽了?
    sunchen
        9
    sunchen  
       2015-09-14 12:07:41 +08:00
    国际版 QQ 文件目录里有个城市列表的 xml 文件,直接提取出来解析就行了
    larkifly
        10
    larkifly  
    OP
       2015-09-14 12:44:18 +08:00
    @Nan7Huang undefined,额,看样子 js 写的有问题,请问查的是什么,我修复一下
    larkifly
        11
    larkifly  
    OP
       2015-09-14 12:44:58 +08:00
    @Nan7Huang undefined,额,看样子 js 写的有问题,请问查的是什么,我修复一下
    @lxw322 数据是我本地缓存的,不是从鹅厂那抓取的
    finalhyl
        12
    finalhyl  
       2015-09-14 13:57:57 +08:00
    查了几个城市都是 undefined
    lilanfeng2089
        13
    lilanfeng2089  
       2015-09-14 15:28:52 +08:00
    larkifly
        14
    larkifly  
    OP
       2015-09-14 15:50:29 +08:00
    @lilanfeng2089 只支持 post 方式哦
    larkifly
        15
    larkifly  
    OP
       2015-09-14 15:50:59 +08:00
    @finalhyl 能告诉我是城市名吗,我修复一下,因为我查了一些都没问题
    tuzkiss
        16
    tuzkiss  
       2015-09-14 15:55:07 +08:00
    满屏尽带 undefined
    smithtel
        17
    smithtel  
       2015-09-14 16:00:57 +08:00
    一大串 undefined
    smithtel
        18
    smithtel  
       2015-09-14 16:02:31 +08:00   1
    两个条件一起查询就会出现一大串 undefined
    viko16
        19
    viko16  
       2015-09-14 16:04:08 +08:00
    cities.json 我抱走了,谢谢楼主
    larkifly
        20
    larkifly  
    OP
       2015-09-14 16:57:51 +08:00
    @viko16 客气,今晚有时间我把英文版的放出来
    larkifly
        21
    larkifly  
    OP
       2015-09-14 17:00:00 +08:00
    @smithtel 能给我一个你查询的内容吗?试了好多次,我还没复现你说的这个情况
    rvw
        22
    rvw  
       2015-09-14 17:53:24 +08:00
    undefined 闹怎样
    Anybfans
        23
    Anybfans  
       2015-09-14 18:05:47 +08:00   1
    larkifly
        24
    larkifly  
    OP
       2015-09-14 19:06:03 +08:00
    @Anybfans 谢谢
    zhicheng
        25
    zhicheng  
       2015-09-14 19:08:36 +08:00
    larkifly
        26
    larkifly  
    OP
       2015-09-14 19:25:09 +08:00
    @Anybfans
    @rvw
    @smithtel
    @secret32
    @Nan7Huang

    感谢各位,现在已经修复了。
    flowfire
        27
    flowfire  
       2015-09-14 19:34:29 +08:00
    查全名查不到。。。
    rvw
        28
    rvw  
       2015-09-14 19:38:20 +08:00
    @larkifly 查不到怎么办
    stanhou
        29
    stanhou  
       2015-09-14 19:47:46 +08:00
    其实 LZ 只要提供一下城市的 XML 就好了,那个作用更大。
    finalhyl
        30
    finalhyl  
       2015-09-14 23:55:35 +08:00
    似乎之前 undefined 的问题已经修复,但是直辖市查不到;
    英文也查不到,查了加州的几个城市都是空
    larkifly
        31
    larkifly  
    OP
       2015-09-15 00:30:06 +08:00
    @stanhou 在 github 有 json 格式的
    larkifly
        32
    larkifly  
    OP
       2015-09-15 00:30:47 +08:00
    @flowfire 输入美国就可以了
    larkifly
        33
    larkifly  
    OP
       2015-09-15 00:35:50 +08:00
    @finalhyl 直辖市在省 /州那个输入,英文要先选为英文,然后比如美国,在国家那输入 United States ,州比如 Alabama ,首字母大写
    msg7086
        34
    msg7086  
       2015-09-15 05:32:36 +08:00
    看了一眼发现找不到自己的城市
    larkifly
        35
    larkifly  
    OP
       2015-09-15 08:38:37 +08:00
    @msg7086 什么城市了,我给添加上
    msg7086
        36
    msg7086  
       2015-09-15 08:41:52 +08:00
    @larkifly Lincoln Park
    larkifly
        37
    larkifly  
    OP
       2015-09-15 09:21:17 +08:00
    @msg7086 没 google 这个城市了,目前只支持城市名查询,不知道具体地名哦
    msg7086
        38
    msg7086  
       2015-09-15 09:53:05 +08:00
    @larkifly 这是个城市,不是地名。姑且是有市政府的。
    finalhyl
        39
    finalhyl  
       2015-09-15 12:04:35 +08:00
    @larkifly 英文就是这么输入的,加州的城市都搜不出来.
    德州倒是有结果.
    larkifly
        40
    larkifly  
    OP
       2015-09-15 16:03:07 +08:00
    @finalhyl
    @msg7086
    我再看看
    yanpeng
        41
    yanpeng  
       2018-09-23 09:08:46 +08:00
    @larkifly 请问一下你现在还有数据吗,或者告知一下爬数据的页面
    larkifly
        42
    larkifly  
    OP
       2018-09-30 10:11:00 +08:00
    @yanpeng 腾讯 QQ 的注册页面
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3383 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 93ms UTC 04:30 PVG 12:30 LAX 21:30 JFK 00:30
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86