设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 6081|回复: 0
打印 上一主题 下一主题

查天气46课

[复制链接]

3

主题

0

好友

15

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2016-10-5 06:51:54 |显示全部楼层 |倒序浏览
跟着推送文的步骤,想要抓取城市代码。但是最后的问题是写不了文件。在shell可以打印出来每个城市的代码,但是在我指定的f=open()的地址却没有找到文件。然后有时候运行代码会出现“code=content4.split('|')[1]IndexError: list index out of range”的error
不知道有没有人知道是什么问题
代码如下:
import urllib.request

url1 = 'http://m.weather.com.cn/data5/city.xml'
content1 = urllib.request.urlopen(url1).read()
content1=content1.decode()
provinces = content1.split(',')
result = 'city = {\n'
url = 'http://m.weather.com.cn/data3/city%s.xml'
for p in provinces:
    p_code= p.split('|')[0]
    url2 = url %p_code
    content2 =urllib.request.urlopen(url2).read().decode()
    cities = content2.split(',')
    for c in cities:
        c_code = c.split('|')[0]
        url3 = url %c_code
        content3=urllib.request.urlopen(url3).read().decode()
        districts=content3.split(',')
        for d in districts:
            d_pair=d.split('|')
            d_code=d_pair[0]
            name=d_pair[1]
            url4=url %d_code
            content4=urllib.request.urlopen(url4).read().decode()
            code=content4.split('|')[1]
            line="  '%s':'%s',\n" %(name,code)
            result+=line
result += '}'
f = open('d:/mycity.py', 'w')
f.write(result)
f.close()

回复

使用道具 举报

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

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

GMT+8, 2024-5-18 21:44 , Processed in 0.016462 second(s), 26 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部