设为首页收藏本站

Crossin的编程教室

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

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

  [复制链接]

0

主题

0

好友

54

积分

注册会员

Rank: 2

71#
发表于 2016-4-27 16:09:23 |只看该作者
从2月中旬到现在,一直断断续续在学习。每次遇到稍微大一点的习题,比如上次的文件保存游戏分数,和这次的查天气,总是没办法自己把程序写出来。必须看完提示,才会有一点思路,然后一边想,一边写。可能自己太笨了,即便有了思路,还是要花很多时间才能把程序调试好,然后有些细节也总是漏掉,考虑的不全面。但等到最终能够完成整个程序,自己还是会开心很长一段时间。今天终于学完查天气了,可以进入面向对象的学习了。非常感谢crossion老师提供的学习资源和平台,我会坚持学习下去的。
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

72#
发表于 2016-4-28 10:39:15 |只看该作者
LC0919 发表于 2016-4-27 16:09
从2月中旬到现在,一直断断续续在学习。每次遇到稍微大一点的习题,比如上次的文件保存游戏分数,和这次的 ...

加油,要有信心。其实只是不熟悉,开始都是这样的,多踩踩坑,多写点代码,慢慢就好了。欲速则不达
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

18

积分

新手上路

Rank: 1

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

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

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

搜狗截图20160530213915.png

回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

74#
发表于 2016-5-31 13:26:32 |只看该作者
哇哈哈哈哈 发表于 2016-5-30 21:42
网页显示是好像失效了,但是点击显示源码,城市代码还是在的,见图片

可能只是对方服务器拒绝了你直接发送的请求。修改一下headers信息看看。另外有新接口,可以看查天气(1)开头的链接
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

18

积分

新手上路

Rank: 1

75#
发表于 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数量少的话,手动给加进去,第二个,换个网站去爬城市代码。

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


回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

76#
发表于 2016-6-1 23:01:56 |只看该作者
哇哈哈哈哈 发表于 2016-6-1 21:17
对于程序出现的一个问题的解释

程序报错如下:

这个错误分析过程很赞
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

10

积分

新手上路

Rank: 1

77#
发表于 2016-8-9 12:13:27 |只看该作者
code = content4.split('|')[1]
IndexError: list index out of range

我原封不动复制代码运行,每次都会报错,请问为什么?
回复

使用道具 举报

0

主题

0

好友

10

积分

新手上路

Rank: 1

78#
发表于 2016-8-9 12:19:34 |只看该作者
本帖最后由 yan 于 2016-8-9 12:24 编辑

。。
回复

使用道具 举报

0

主题

0

好友

10

积分

新手上路

Rank: 1

79#
发表于 2016-8-9 12:23:48 |只看该作者
crossin先生 发表于 2013-8-5 16:20
split得出的结果诸如['01', '北京']形式的list,[0]就是取到它的省级别编码

请问这个报错是为什么

QQ截图20160809120208.jpg (50.23 KB, 下载次数: 221)

QQ截图20160809120208.jpg

QQ截图20160809120230.jpg (48.63 KB, 下载次数: 232)

QQ截图20160809120230.jpg

回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

80#
发表于 2016-8-9 17:05:18 |只看该作者
yan 发表于 2016-8-9 12:23
请问这个报错是为什么

你把content4给print出来,看看是什么问题
我记得有些城市可能会请求失败,如果是这个原因,就跳过失败的城市
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-4-28 03:06 , Processed in 0.043119 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部