设为首页收藏本站

Crossin的编程教室

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

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

  [复制链接]

0

主题

0

好友

18

积分

新手上路

Rank: 1

楼主
发表于 2016-5-30 21:42:31 |显示全部楼层
周末晒被子 发表于 2015-12-10 21:40
请教一下佩佩学姐,因为你跟我的学习时间比较近....
第46课的链接都失效了,推荐文章的链接也失效了,你 ...

网页显示是好像失效了,但是点击显示源码,城市代码还是在的,见图片

搜狗截图20160530213915.png (6.3 KB, 下载次数: 236)

搜狗截图20160530213915.png

回复

使用道具 举报

0

主题

0

好友

18

积分

新手上路

Rank: 1

沙发
发表于 2016-6-1 21:17:09 |显示全部楼层
对于程序出现的一个问题的解释

程序报错如下:
Traceback (most recent call last):
  File "D:\Python27\citycode.py", line 34, in <module>
    code=content4.split('|')[1]
IndexError: list index out of range

把先生原本的程序加了异常处理,如下
        for d in districts:
            try:
                d_pair=d.split('|')
                d_code=d_pair[0]
                name=d_pair[1]
                url4=url%d_code
                content4=urllib2.urlopen(url4).read()
                code=content4.split('|')[1]
                line="    '%s':  '%s',  \n" %(name,code)
                result+=line
            except:
                print 'error'
                print url3
                print url4

程序运行结束,报了两个错,如下,就是说有两个编号是没得到的
error
http://m.weather.com.cn/data3/city0603.xml
http://m.weather.com.cn/data3/city06039.xml
error
http://m.weather.com.cn/data3/city0902.xml
http://m.weather.com.cn/data3/city09029.xml

打开链接http://m.weather.com.cn/data3/city0603.xml(点击右键显示源码),发现060308|图们,06039|松江,060310|罗子沟
有没有觉得松江的编号有点奇怪,应该是060309才对?
然后http://m.weather.com.cn/data3/city06039.xml这个链接就是打不开的,而http://m.weather.com.cn/data3/city060309.xml是有源码的,经比对与Crossincode先生给出的城市代码一致。
另外一个error和这个是一样的道理。

我想到的解决办法有两个,一个是,error数量少的话,手动给加进去,第二个,换个网站去爬城市代码。

体会:加异常处理真的很有用....


回复

使用道具 举报

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

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

GMT+8, 2024-5-10 19:24 , Processed in 0.026110 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部