设为首页收藏本站

Crossin的编程教室

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

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

  [复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

161#
发表于 2018-1-14 17:10:30 |只看该作者
calf_in_cup 发表于 2018-1-13 17:54
老师,我没明白你是啥意思,url3输出以后是这样的,跳过是什么意思呐

你没发现你的url2、url3都不对吗。这个地址放浏览器里也没法有结果的

这里,你要么改用 requests 库来做。要么你要多做一次 decode 操作,把 bytes 转成 str
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

28

积分

新手上路

Rank: 1

162#
发表于 2018-1-14 20:16:25 |只看该作者
crossin先生 发表于 2018-1-14 17:10
你没发现你的url2、url3都不对吗。这个地址放浏览器里也没法有结果的

这里,你要么改用 requests 库来做 ...

发现了。。我明白了,谢谢老师
回复

使用道具 举报

0

主题

0

好友

28

积分

新手上路

Rank: 1

163#
发表于 2018-1-14 21:18:39 |只看该作者
crossin先生 发表于 2018-1-14 17:10
你没发现你的url2、url3都不对吗。这个地址放浏览器里也没法有结果的

这里,你要么改用 requests 库来做 ...

非常感谢老师的超级超级好的耐心,遇到问题应该自己解决的。。谢谢老师!!!

20180114211602.png (43.7 KB, 下载次数: 212)

20180114211602.png

回复

使用道具 举报

0

主题

0

好友

26

积分

新手上路

Rank: 1

164#
发表于 2018-1-17 22:25:55 |只看该作者
问一下先生,为什么不是直接进入www.weather.com.cn这个网站爬,而是要一个接口呢
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

165#
发表于 2018-1-18 11:09:09 |只看该作者
Iceblock 发表于 2018-1-17 22:25
问一下先生,为什么不是直接进入www.weather.com.cn这个网站爬,而是要一个接口呢 ...

因为接口方便
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

26

积分

新手上路

Rank: 1

166#
发表于 2018-1-18 16:18:37 |只看该作者
crossin先生 发表于 2018-1-18 11:09
因为接口方便

好的谢谢
还需要再学习一阵子才能知道异同
回复

使用道具 举报

1

主题

0

好友

43

积分

新手上路

Rank: 1

167#
发表于 2018-1-28 02:46:16 |只看该作者
本来想问问题的,结果看到前面其他人的问题有点靠近自己的,好好研究了下,现在问题解决了,真开心,可以安心睡觉了
回复

使用道具 举报

2

主题

0

好友

16

积分

新手上路

Rank: 1

168#
发表于 2018-1-28 14:15:41 |只看该作者
我复制过去,运行后发生这样的事:
================== RESTART: C:/Users/wangsheng/Desktop/5.py ==================

Traceback (most recent call last):
  File "C:/Users/wangsheng/Desktop/5.py", line 11, in <module>
    content2 = urllib2.urlopen(url2).read()
  File "C:\Python27\lib\urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Python27\lib\urllib2.py", line 429, in open
    response = self._open(req, data)
  File "C:\Python27\lib\urllib2.py", line 447, in _open
    '_open', req)
  File "C:\Python27\lib\urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 1228, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "C:\Python27\lib\urllib2.py", line 1201, in do_open
    r = h.getresponse(buffering=True)
  File "C:\Python27\lib\httplib.py", line 1121, in getresponse
    response.begin()
  File "C:\Python27\lib\httplib.py", line 438, in begin
    version, status, reason = self._read_status()
  File "C:\Python27\lib\httplib.py", line 402, in _read_status
    raise BadStatusLine(line)
BadStatusLine: ''
>>> 求教
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

169#
发表于 2018-1-28 23:14:16 |只看该作者
圣痕 发表于 2018-1-28 14:15
我复制过去,运行后发生这样的事:
================== RESTART: C:/Users/wangsheng/Desktop/5.py ======= ...

把url2输出出来,放到浏览器里看看是什么情况

有些url是有问题的,要跳过。看看之前帖子里的讨论
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

16

积分

新手上路

Rank: 1

170#
发表于 2018-3-11 16:47:26 |只看该作者
  1. import urllib.request
  2. import json


  3. url1 = 'http://m.weather.com.cn/data3/city.xml'
  4. content1 = urllib.request.urlopen(url1).read()
  5. print(content1)
  6. data1 = bytes.decode(content1)
  7. povinces = data1.split(',')
复制代码
(。・∀・)ノ゙嗨,老师,我这里有两个问题:现在print(content1)输出的结果是“b'00|\xe7\x9c\x81,01|\xe5\x8c\x97\xe4\xba\xac,02|\xe4\xb8\x8a\xe6\xb5\xb7,”这种形式的,直接用上节课中的json.loads()函数会出错,是怎么回事呢?
还有另一个问题:因为province的那一行程序会报错,所以我把content1改成了byte形式的data1,对后续有没有影响呢,还是说本身就存在会出现这种错误的可能?
纯小白准备靠老师这门课程进行入门学习,经常在错误上卡住,请教
回复

使用道具 举报

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

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

GMT+8, 2024-5-3 09:35 , Processed in 0.029042 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部