设为首页收藏本站

Crossin的编程教室

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

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

  [复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

101#
发表于 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
回复

使用道具 举报

1

主题

1

好友

152

积分

注册会员

Rank: 2

102#
发表于 2016-2-29 13:31:15 |只看该作者
我的是3.x版本,StringIO不能直接用,我在网上找了下相关的方法,改写成上面这样的,但又出现新的问题了。

QQ图片20160229132922.png (78.25 KB, 下载次数: 234)

QQ图片20160229132922.png

回复

使用道具 举报

1

主题

1

好友

152

积分

注册会员

Rank: 2

103#
发表于 2016-2-29 13:36:09 |只看该作者
我在初学阶段是不是应该用Python2.X的版本学习啊?这样方便学习一点。
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

104#
发表于 2016-3-1 11:41:33 |只看该作者
Kunz 发表于 2016-2-29 13:31
我的是3.x版本,StringIO不能直接用,我在网上找了下相关的方法,改写成上面这样的,但又出现新的问题了。 ...

示例里的网址要替换成你访问的网址。有可能python3的用法会不一样。你去查下3里面如何解压gzip。2和3差不多,只不过我基本都用2
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

1

好友

152

积分

注册会员

Rank: 2

105#
发表于 2016-3-1 12:58:02 |只看该作者
crossin先生 发表于 2016-3-1 11:41
示例里的网址要替换成你访问的网址。有可能python3的用法会不一样。你去查下3里面如何解压gzip。2和3差不 ...

我是先试了一下你给的示例,结果就出现这个错误了,太纠结了,我还是乖乖用2.X来学习吧,3.X太麻烦了,而且貌似好多教程都是用版本2来讲的。
回复

使用道具 举报

0

主题

0

好友

64

积分

注册会员

Rank: 2

106#
发表于 2016-3-11 20:24:42 |只看该作者
为何段代码一运行,放代码的目录下就会有一个city.pyc的文件出来呢
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

107#
发表于 2016-3-11 22:49:13 |只看该作者
弹星者 发表于 2016-3-11 20:24
为何段代码一运行,放代码的目录下就会有一个city.pyc的文件出来呢

pyc是python自动编译的二进制代码,为了提升运行效率
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

64

积分

注册会员

Rank: 2

108#
发表于 2016-3-12 17:52:11 |只看该作者

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

crossin先生 发表于 2016-3-11 22:49
pyc是python自动编译的二进制代码,为了提升运行效率

谢谢crossin老师
回复

使用道具 举报

0

主题

0

好友

24

积分

新手上路

Rank: 1

109#
发表于 2016-3-17 11:10:29 |只看该作者
本人是win8系统,python 2.75 IDLE, 输入北京后,报错。city.py 和主程序都是cp936,错误如下
Traceback (most recent call last):
  File "C:\python_practice\weather searching\weather.py", line 4, in <module>
    from city import city
  File "C:\python_practice\weather searching\city.py", line 1
SyntaxError: encoding problem: utf-8

两边同为utf-8时,输入北京,没有后续,直接结束。非常困扰!请crossin先生指教一下。谢谢
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

110#
发表于 2016-3-17 11:59:59 |只看该作者
fengyulaike 发表于 2016-3-17 11:10
本人是win8系统,python 2.75 IDLE, 输入北京后,报错。city.py 和主程序都是cp936,错误如下
Traceback (mo ...

不知道你文件是用什么软件修改和保存的,看上去是文件被保存成了utf8格式。可以的话,选ANSI编码
windows控制台是cp936这个似乎不好改,所以你得确保文件格式和它一致。或者就是额外自己在代码里做一下解码
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-5-19 05:43 , Processed in 0.021708 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部