更多课程 选择中心

Python培训
美国上市教育机构

400-111-8989

Python培训

自学Python编程【第四十二节】查天气(2)

  • 发布:Python培训
  • 来源:Crossin的编程教室
  • 时间:2019-03-01 17:31

欢迎您来到Python编程教室,上节课我们对查天气中的难点提前跟大家说了一下, 比如城市代码的获取,今天我们就要开始编程获取数据了,想想是不还有点小激动呢?快来看看吧:

自学Python编程【第四十二节】查天气(2)

先来看python中的urllib2,这是python中一个用来获取网络资源的模块。我们平常上网,在浏览器地址栏中输入一个网址,浏览器根据这个网址拿到一些内容,然后展现在页面上,这大约就是浏览网页的过程。类似的,urllib2会跟据你提供的网址,请求对应的内容。

打开一个链接和打开一个文件有点像:

import urllib2

web = urllib2.urlopen('http://www.baidu.com')

content = web.read()

print content

我们引入urllib2的模块,用其中的urlopen方法打开百度,然后用read方法把其中的内容读取到一个变量中并输出。运行后,你会看到控制台中输出了一堆看不懂的代码文字。这段代码中有html,有css,还有javascript。我们在浏览器中看到的网页大部分就是由这些代码所组成。如果你把content保存到一个以“.html”结尾的文件中(保存文件的方法前面已经说过很多),再打开这个html文件,就会看到“百度的首页”,只是这个首页在你的电脑上,所以你无法进行搜索。

回到我们的查天气程序,我们要向中国天气网发一个查询天气的请求。昨天说了,如何获取查询的url是个问题。先说简单的办法,用我提供的城市代码列表city.py。

city.py这个文件里有一个叫做city的字典,它里面的key是城市的名称,value是对应的城市代码。不用把它copy到自己的程序中,只要放在和你的代码同一路径下,用

from city import city

就可以引入city这个字典。这里相当于用了一个自定义的模块,前一个“city”是模块名,也就是py文件的名称,后一个“city”是模块中变量的名称。

构造我们需要的url:

cityname = raw_input('你想查哪个城市的天气?\n')

citycode = city.get(cityname)

if citycode:

url = ('http://www.weather.com.cn/data/cityinfo/%s.html' % citycode)

content = urllib2.urlopen(url).read()

为了防止你输入列表中没有的城市,所以用了if判断citycode是否存在。

运行一下看看能不能得到结果。如果提示编码的错误,试试在文件最开始加上:

# -*- coding: utf-8 -*-

自学Python编程【第四十二节】查天气(2)

可以看到,已经拿到了json格式的天气信息。下一课再来处理它。

恭喜您在Python自学的道路上又坚持了一天,今天讲的内容大家是不觉得有点意犹未尽呢?那你能不能拓展一下,查出全国各个城市的天气,并且把他们按照一定的格式填充到excel中呢?试一下吧。

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:自学Python编程【第四十一节】查天气(1)
下一篇:自学Python编程【第四十三节】查天气(3)

【Git第八节】移除文件

【Python实战】四行Python代码就能知道你那的天气,你敢信?

Python实战【用Python写游戏第十三节】exe打包

Python实战【用Python写游戏第十二节】屡败屡战

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省