设为首页收藏本站

Crossin的编程教室

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

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

  [复制链接]

0

主题

1

好友

273

积分

中级会员

Rank: 3Rank: 3

91#
发表于 2016-1-22 16:46:59 |只看该作者
catherinemic 发表于 2016-1-22 16:27
今天按照您说的试了一下,citycode返回正确,网址print出来没有问题,也没有出现昨天的问题,但是没有返回 ...

哎呀,傻了,最后忘记print了。。。这次没问题了~~谢谢crossin先生!
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

92#
发表于 2016-1-23 11:12:14 |只看该作者
812002505 发表于 2016-1-22 15:39
我这输入北京,还是显示none饿。。 cp936我试过了  没有用
代码如下:
# -*- coding: UTF-8 -*-  

你看city.py里面有没有指定编码。这几个文件,在win下,都改成cp936
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

10

积分

新手上路

Rank: 1

93#
发表于 2016-1-25 11:14:06 |只看该作者
crossin先生 发表于 2016-1-23 11:12
你看city.py里面有没有指定编码。这几个文件,在win下,都改成cp936

两个文件都换了cp936还是不可以     另外 我是mac系统的  咋回事呢?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

94#
发表于 2016-1-25 11:18:41 |只看该作者
812002505 发表于 2016-1-25 11:14
两个文件都换了cp936还是不可以     另外 我是mac系统的  咋回事呢?

mac的话就是utf-8,改cp936反而就不对了。
试试从mac终端之间执行行不行,如果还不行,那可能就不是字符问题,要调试下代码,print看看过程中的值到底是什么,哪里出了问题
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

95#
发表于 2016-2-20 17:37:44 |只看该作者
我是win7的,这好像还是解析不了?
1.JPG

还有哦,那个之前的网址好像已经更新过了,输入上海的天气已经是这种地址了
http://www.weather.com.cn/weather1d/101020100.shtml#input
和之前的不一样了
http://www.weather.com.cn/data/cityinfo/101010100.html

是要相应改的吧?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

96#
发表于 2016-2-21 11:05:07 |只看该作者
shisidao 发表于 2016-2-20 17:37
我是win7的,这好像还是解析不了?

看一下city.py里面指定的编码。开头一行也把编码改成cp936

地址要更新的,参见查天气(1)帖子开头的说明
http://bbs.crossincode.com/forum.php?mod=viewthread&tid=8
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

1

好友

152

积分

注册会员

Rank: 2

97#
发表于 2016-2-27 15:50:07 |只看该作者
这个怎么弄啊??查了好多也没有查到解决办法

QQ图片20160227154837.png (56.72 KB, 下载次数: 443)

QQ图片20160227154837.png

QQ图片20160227154855.png (60.65 KB, 下载次数: 433)

QQ图片20160227154855.png

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

98#
发表于 2016-2-27 21:22:34 |只看该作者
Kunz 发表于 2016-2-27 15:50
这个怎么弄啊??查了好多也没有查到解决办法

decode去掉,或者里面的参数换成utf-8或gbk,分别都试下
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

1

好友

152

积分

注册会员

Rank: 2

99#
发表于 2016-2-28 08:16:06 |只看该作者
去掉decode后输出为
b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xabVJI-NV\xb2R\xca\xcc+\xcb\xccIL\xd1M\xce,\xa9\xccN\xadT\xd2Q*.I,)-V\xb22400\xaa\x05\x00\x83\xc8\xca\\(\x00\x00\x00'
换成utf-8和gbk都不行
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

100#
发表于 2016-2-28 15:37:47 |只看该作者
Kunz 发表于 2016-2-27 15:50
这个怎么弄啊??查了好多也没有查到解决办法

看了下,这个网站是自己在内容上做了gzip压缩,所以你拿到的压缩过的内容,需要做一步解压。参考代码:
  1. from StringIO import StringIO
  2. import gzip
  3. import urllib2

  4. request = urllib2.Request('http://outofmemory.cn/')
  5. request.add_header('Accept-encoding', 'gzip')
  6. response = urllib2.urlopen(request)
  7. if response.info().get('Content-Encoding') == 'gzip':
  8.     buf = StringIO( response.read())
  9.     f = gzip.GzipFile(fileobj=buf)
  10.     data = f.read()
复制代码
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-11-22 14:48 , Processed in 0.019109 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部