请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生

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

  [复制链接]

0

主题

0

好友

33

积分

新手上路

Rank: 1

发表于 2013-8-17 23:55:44 |显示全部楼层
在ubuntu虚拟机和win7都试了,都不行,怎么回事呢?
win.PNG
ubuntu.PNG
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2013-8-18 11:57:34 |显示全部楼层
jako 发表于 2013-8-17 23:55
在ubuntu虚拟机和win7都试了,都不行,怎么回事呢?

请求的地址有问题
把url输出来看看呢
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

33

积分

新手上路

Rank: 1

发表于 2013-8-18 16:09:13 |显示全部楼层
crossin先生 发表于 2013-8-18 11:57
请求的地址有问题
把url输出来看看呢

我试了下 把输出来的url  复制到浏览器上,结果打不开,我觉得应该是站点的问题,在43课的那几个网站也打不开
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2013-8-18 22:42:48 |显示全部楼层
jako 发表于 2013-8-18 16:09
我试了下 把输出来的url  复制到浏览器上,结果打不开,我觉得应该是站点的问题,在43课的那几个网站也打 ...

浏览器打不开是正常的,是它xml文件格式问题,你在网页上查看源代码就能看到内容了,这个不影响。

我意思,把你程序中拼出来的“url”变量打出来。如果我没猜错,你的citycode没有拿到正确的值
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

33

积分

新手上路

Rank: 1

发表于 2013-8-18 23:15:01 |显示全部楼层
crossin先生 发表于 2013-8-18 22:42
浏览器打不开是正常的,是它xml文件格式问题,你在网页上查看源代码就能看到内容了,这个不影响。

我意 ...
  1. # -*- coding: utf-8 -*-
  2. from urllib2 import urlopen
  3. import json
  4. from city import city
  5. cityname = raw_input('你想查哪个城市的天气?\n')
  6. citycode = city.get(cityname)
  7. if citycode:
  8.     url = 'https://www.weather.com.cn/data/cityinfo/%s.html'%citycode
  9.     print url
  10.     f = urlopen(url)
  11.     content = f.read()
  12.     print content
复制代码
输出url是这样子
ubuntu.PNG
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2013-8-20 14:30:47 |显示全部楼层
jako 发表于 2013-8-18 23:15
输出url是这样子

不要用https,改成http
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

33

积分

新手上路

Rank: 1

发表于 2013-8-20 15:29:12 |显示全部楼层
crossin先生 发表于 2013-8-20 14:30
不要用https,改成http

解决了!  真的是手贱打多了个s。。。  谢谢crossin
回复

使用道具 举报

0

主题

0

好友

14

积分

新手上路

Rank: 1

发表于 2013-9-6 14:05:30 |显示全部楼层
feicien 发表于 2013-7-24 09:03

感谢! urllib2在Python3里已经改名了,抓取数据的方法也不同了。还有抓取的内容需要.decode('utf-8')一下,不然没法用json.loads()。
回复

使用道具 举报

0

主题

0

好友

6

积分

新手上路

Rank: 1

发表于 2013-9-10 22:49:39 |显示全部楼层
为什么我在python3下获得的数据是这样的
b'{"weatherinfo":{"city":"\xe5\x8d\x97\xe4\xba\xac","cityid":"101190101","temp1":"24\xe2\x84\x83","temp2":"27\xe2\x84\x83","weather":"\xe9\x9b\xb7\xe9\x98\xb5\xe9\x9b\xa8\xe8\xbd\xac\xe4\xb8\xad\xe9\x9b\xa8","img1":"n4.gif","img2":"d8.gif","ptime":"18:00"}}'
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2013-9-10 23:25:26 |显示全部楼层
Sooongz 发表于 2013-9-10 22:49
为什么我在python3下获得的数据是这样的
b'{"weatherinfo":{"city":"\xe5\x8d\x97\xe4\xba\xac","cityid":" ...

你这个已经快接近了啊,把这个json数据取出来就是结果了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-3-29 18:58 , Processed in 0.019676 second(s), 25 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部