设为首页收藏本站

Crossin的编程教室

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

【Python 第44课】 查天气(2)

  [复制链接]

0

主题

0

好友

18

积分

新手上路

Rank: 1

31#
发表于 2013-10-16 13:36:22 |只看该作者
问个问题啊。
我在windows上和linux上都运行相同的代码,但是结果不一样..
代码都是如下所示
  1. import urllib.request

  2. url=("http://www.baidu.com")
  3. request=urllib.request.Request(url)
  4. response=urllib.request.urlopen(request)
  5. content=response.read().decode("utf-8")
  6. try:
  7.     with open('./baidu.html','w') as data:
  8.         print(content,file=data)
  9. except IOError as a:
  10.     print('IOerror'+str(a))
  11. print(content)
复制代码
然后我在linux下打开这个网页的话,是正常显示的,但是在windows下打开的话,那些汉字会变成菱形..如果我把浏览器的编码换成gbk的话,那就可以正常显示了,这是为什么?
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

32#
发表于 2013-10-16 15:54:47 |只看该作者
pyer_hwb 发表于 2013-10-16 13:36
问个问题啊。
我在windows上和linux上都运行相同的代码,但是结果不一样..
代码都是如下所示然后我在linux ...

编码的问题。但我也不确定是那里的问题。
可能是因为,你的文件编码是utf8,但你保存的网页内容里面并没有指定编码,或者指定的不是utf8编码。所以浏览器默认并不知道要用何种编码来显示。在windows下出问题,可能是和windows下你那个浏览器的默认显示编码有关
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

18

积分

新手上路

Rank: 1

33#
发表于 2013-10-16 23:12:05 |只看该作者
crossin先生 发表于 2013-10-16 15:54
编码的问题。但我也不确定是那里的问题。
可能是因为,你的文件编码是utf8,但你保存的网页内容里面并没 ...

好的。。谢了。
回复

使用道具 举报

0

主题

0

好友

16

积分

新手上路

Rank: 1

34#
发表于 2013-10-26 17:57:30 |只看该作者
先生好,我才看到这儿,我用的也是win7.
按照前面同学说的,city.py文件跟lesson44.py文件开头都加上了# -*- coding: cp936 -*-
而我的在from city import city这句报错了“SyntaxError: encoding problem: utf-8”

这个怎么解决?

PS:utf-8 是可以运行的,但是如上面同学说的,输入城市后在字典中找不到对应的key,输出citycode是None,我输出下city,显示的是46节下面那个同学同样的问题,乱码
回复

使用道具 举报

0

主题

0

好友

16

积分

新手上路

Rank: 1

35#
发表于 2013-10-26 23:51:53 |只看该作者
YuanXQ_131015 发表于 2013-10-26 17:57
先生好,我才看到这儿,我用的也是win7.
按照前面同学说的,city.py文件跟lesson44.py文件开头都加上了# -* ...

好吧,我自问自答,关于上面的那个问题,win7下用cp936是对的。
关于我的问题报错
“按照前面同学说的,city.py文件跟lesson44.py文件开头都加上了# -*- coding: cp936 -*-
而我的在from city import city这句报错了“SyntaxError: encoding problem: utf-8””

是因为上面让改的内容我是用txt打开之后改的,怀疑txt下的编码可能跟python的不太一样
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

36#
发表于 2013-11-28 17:52:14 |只看该作者
YuanXQ_131015 发表于 2013-10-26 23:51
好吧,我自问自答,关于上面的那个问题,win7下用cp936是对的。
关于我的问题报错
“按照前面同学说的,c ...

不要用windows的默认文本编辑器来改代码。那个会在你的文件头上加上额外的数据。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

78

积分

注册会员

Rank: 2

37#
发表于 2013-12-26 23:13:15 |只看该作者
本帖最后由 nemo 于 2013-12-26 23:15 编辑

求助:
我直接用url = ('http://www.weather.com.cn/data/cityinfo/101010100.html' )是可以得到正确结果的;
但是用主贴的代码输入北京后却什么反应都没有,程序直接结束;
如果去掉if citycode那一行,可以得到一堆包含‘找不到该页面’的代码。
我2个文件都加了# -*- coding: UTF-8 -*- ,不然会报错。
我用的是py2.7,xp.
回复

使用道具 举报

21

主题

1

好友

373

积分

中级会员

Rank: 3Rank: 3

38#
发表于 2014-1-13 11:13:38 |只看该作者
老师,这是什么情况?

查天气.jpg (147.94 KB, 下载次数: 339)

查天气.jpg

回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

39#
发表于 2014-1-13 15:27:15 |只看该作者
今天手气不错啊 发表于 2014-1-13 11:13
老师,这是什么情况?

页面没找到,可能是url错了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

21

主题

1

好友

373

积分

中级会员

Rank: 3Rank: 3

40#
发表于 2014-1-14 09:38:31 |只看该作者
crossin先生 发表于 2014-1-13 15:27
页面没找到,可能是url错了

问题解决了,是编码问题
回复

使用道具 举报

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

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

GMT+8, 2024-4-20 21:15 , Processed in 0.020504 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部