设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Python 第46课】 查天气(4)

  [复制链接]

0

主题

0

好友

22

积分

新手上路

Rank: 1

楼主
发表于 2018-10-25 17:12:52 |显示全部楼层
hi 先生 麻烦解答一下 自己倒腾修改了一点 Python 3.6.3 win
# -*- coding: cp936 -*-
import urllib.request

url1 = 'http://m.weather.com.cn/data3/city.xml'
content1 = urllib.request.urlopen(url1).read()
provinces = content1.split(','.encode())
result = 'city = {\n'
url = 'http://m.weather.com.cn/data3/city%s.xml'

for p in provinces[:3]:
    p_code = p.split('|'.encode())[0].decode()
    url2 = url % p_code
    content2 = urllib.request.urlopen(url2).read()
    cities = content2.split(','.encode())   
    for c in cities:
        c_code = c.split('|'.encode())[0].decode()
        url3 = url % c_code
        content3 = urllib.request.urlopen(url3).read()
        districts = content3.split(','.encode())        
        for d in districts:
            d_pair = d.split('|'.encode())
            d_code = d_pair[0]
            name = d_pair[1]
            url4 = url % d_code
            content4 = urllib.request.urlopen(url4).read()
            code = content4.split('|'.encode())[1].decode()
            line = "    '%s': '%s',\n" % (name, code)
            result += line
            print(name.decode( ) + ':' + code)
            
result += '}'
f = open('city.py', 'w')
f.write(result)
f.close()

结果:
县:
北京:
海淀:
朝阳:
顺义:
怀柔:
通州:
昌平:
延庆:
丰台:
石景山:
大兴:
房山:
密云:
门头沟:
平谷:
八达岭:
佛爷顶:
汤河口:
密云上甸子:
斋堂:
霞云岭:
上海:
闵行:
宝山:
嘉定:
南汇:
金山:
青浦:
松江:
奉贤:
崇明:
无法打印code的结果,麻烦解答一下,谢谢
回复

使用道具 举报

0

主题

0

好友

22

积分

新手上路

Rank: 1

沙发
发表于 2018-10-25 17:16:12 |显示全部楼层
打印出结果之后,发现原本city.py被修改了

TIM截图20181025171509.png (46.17 KB, 下载次数: 482)

TIM截图20181025171509.png

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-3 21:22 , Processed in 0.016294 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部