设为首页收藏本站

Crossin的编程教室

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

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

  [复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

121#
发表于 2017-8-8 23:50:17 |只看该作者
tanlongfei 发表于 2017-8-8 15:42
crossin先生,先谢谢你提供的这个平台,想自学Python就是从你这个微信平台里入手的,我用的是python3以上的 ...

哪个权限?
最初的查城市代码的接口有时能访问有时不行,查天气一帖子里说了三种替代方式,目前只能这样了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

28

积分

新手上路

Rank: 1

122#
发表于 2017-8-9 14:29:42 |只看该作者
C:\Users\tanlf\Desktop\微信图片_20170809142701
是这样的图片,我也是很无奈,主要是想练练抓城市。
帖子里说'注:上面接口2014.3.4日已不再更新。换成这个:'
然后下面那个点进去就是上面那个图片格式。
回复

使用道具 举报

0

主题

0

好友

28

积分

新手上路

Rank: 1

123#
发表于 2017-8-9 14:31:00 |只看该作者
crossin先生 发表于 2017-8-8 23:50
哪个权限?
最初的查城市代码的接口有时能访问有时不行,查天气一帖子里说了三种替代方式,目前只能这样 ...


好像图片没发明白,再试一次,不行就算啦,无奈
回复

使用道具 举报

0

主题

0

好友

28

积分

新手上路

Rank: 1

124#
发表于 2017-8-9 16:27:53 |只看该作者
  1. #写入byte格式的内容,要用wb模式打开文件才行,w模式打开的文件不能正常写入
  2. #http://qq.ip138.com/weather/shanxi/taiyuan.htm  可查  但是好像没有山西省的天气。。。
  3. #北京地区。。。不能查全北京的天气,只能查具体的某个区,比如北京昌平
  4. import urllib.request
  5. url1 = 'http://qq.ip138.com/weather/'
  6. province = input('用拼音输入省份\n')
  7. city = input('用拼音输入城市\n')
  8. url = url1+province+'/'+city+'.htm'
  9. web = urllib.request.urlopen(url)
  10. content = web.read().decode('GB2312')  
  11. #得用decode('GB2312')才能转换为恰当的格式

  12. data = content.split(',')
  13. need1 = data[10].split('var bds_config')
  14. need2 = need1[1].split(';')
  15. need3 = need2[0]
  16. need4 = need3[5:].split('。')
  17. need5 = need4[0]
  18. need6 = need5[9:].split('_')
  19. need7 = need6[1].split(';')
  20. need6[1] = need7
  21. print('\n',need6[0],':\n')
  22. for i in need6[1]:
  23.     print(i,'\n')
复制代码
决定暂时先放弃抓取城市后写的提取天气的代码。感觉自己low爆了,虽然运行成功,但是全是list和str的运算,low。。。也秀下,毕竟是努力的结果。
回复

使用道具 举报

1

主题

0

好友

80

积分

注册会员

Rank: 2

125#
发表于 2017-8-24 13:35:20 |只看该作者
本帖最后由 blueheart 于 2017-8-24 13:42 编辑
lovepythoner 发表于 2015-4-18 06:43
前面的都看了非常好,阶梯设计的很好,循序渐进
这次的http://m.weather.com.cn/data5/city.xml连接失效请老 ...

哈哈,http://m.weather.com.cn/data5/city.xml这个链接抓出来的是一堆网页源码,原来是链接失效了
抓取省份.png
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

126#
发表于 2017-8-24 13:44:06 |只看该作者
blueheart 发表于 2017-8-24 13:35
哈哈,,http://m.weather.com.cn/data5/city.xml这个链接抓出来的是一堆网页源码,原来是链接失效了
...

改成 city3 ,第一课帖子前面有说明
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

80

积分

注册会员

Rank: 2

127#
发表于 2017-8-24 17:42:59 |只看该作者
本帖最后由 blueheart 于 2017-8-24 17:54 编辑
crossin先生 发表于 2017-8-24 13:44
改成 city3 ,第一课帖子前面有说明

哦哦,谢谢您,您说错了,应该是改成data3而不是city3,我看到了,在查天气(1)那一贴有讲到
回复

使用道具 举报

1

主题

0

好友

80

积分

注册会员

Rank: 2

128#
发表于 2017-8-24 17:57:18 |只看该作者
  1. # -*- coding: UTF-8 -*-
  2. import urllib2

  3. url1 = 'http://m.weather.com.cn/data3/city.xml'

  4. content1 = urllib2.urlopen(url1).read()

  5. provinces = content1.split(',')

  6. print content1
复制代码

抓取省份成功.png (66.96 KB, 下载次数: 230)

抓取省份成功.png

回复

使用道具 举报

1

主题

0

好友

80

积分

注册会员

Rank: 2

129#
发表于 2017-8-24 19:24:29 |只看该作者
本帖最后由 blueheart 于 2017-8-24 19:27 编辑
crossin先生 发表于 2013-9-3 20:26
你这问题好像和楼上某个问题是一样的,你看一下上面的评论。用这个方法试试看。 ...

哈哈,我也遇到一样的问题,确实又是编码问题
  1.    print content2.decode('utf-8')
复制代码

城市列表.png (65.44 KB, 下载次数: 221)

城市列表.png

城市列表1.png (44.43 KB, 下载次数: 217)

城市列表1.png

回复

使用道具 举报

1

主题

0

好友

80

积分

注册会员

Rank: 2

130#
发表于 2017-8-24 19:56:11 |只看该作者
本帖最后由 blueheart 于 2017-8-24 19:57 编辑
  1. # -*- coding: UTF-8 -*-
  2. import urllib2

  3. url1 = 'http://m.weather.com.cn/data3/city.xml'

  4. content1 = urllib2.urlopen(url1).read()

  5. provinces = content1.split(',')

  6. print content1

  7. url = 'http://m.weather.com.cn/data3/city%s.xml'

  8. for p in provinces:

  9.    p_code = p.split('|')[0]

  10.    url2 = url % p_code

  11.    content2 = urllib2.urlopen(url2).read()

  12.    cities = content2.split(',')

  13.    print content2.decode('utf-8')

  14.    for c in cities[:3]:

  15.         c_code = c.split('|')[0]

  16.         url3 = url % c_code

  17.         content3 = urllib2.urlopen(url3).read()

  18.         districts = content3.split(',')

  19.         print content3.decode('utf-8')
复制代码

地区列表1.png (85.3 KB, 下载次数: 204)

地区列表1.png

地区列表2.png (87.4 KB, 下载次数: 214)

地区列表2.png

地区列表3.png (86.16 KB, 下载次数: 206)

地区列表3.png

地区列表4.png (90.06 KB, 下载次数: 207)

地区列表4.png

地区列表5.png (29.27 KB, 下载次数: 211)

地区列表5.png

回复

使用道具 举报

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

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

GMT+8, 2024-5-2 08:04 , Processed in 0.033429 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部