python基础教程共60课-第44课查天气2
2015-12-29 10:21
453 查看
python基础教程共60课-第44课查天气2
【Python 第44课】 查天气(2)
先来看python中的urllib2,这是python中一个用来获取网络资源的模块。
我们平常上网,在浏览器地址栏中输入一个网址,浏览器根据这个网址拿到一些内容,然后展现在页面上,这大约就是浏览网页的过程。类似的,urllib2会跟据你提供的网址,请求对应的内容。
打开一个链接和打开一个文件有点像:
import urllib2
web = urllib2.urlopen('http分割://www分割.baidu.分割com')
content = web.read()
print content
这里无法识别urllib2.
我们引入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 第44课】 查天气(2)
先来看python中的urllib2,这是python中一个用来获取网络资源的模块。
我们平常上网,在浏览器地址栏中输入一个网址,浏览器根据这个网址拿到一些内容,然后展现在页面上,这大约就是浏览网页的过程。类似的,urllib2会跟据你提供的网址,请求对应的内容。
打开一个链接和打开一个文件有点像:
import urllib2
web = urllib2.urlopen('http分割://www分割.baidu.分割com')
content = web.read()
print content
这里无法识别urllib2.
我们引入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 -*-
相关文章推荐
- python3.5.1对应的pywin32的安装问题 import win32api出错
- 1. Two Sum Leetcode Python New season for 2016
- 值得关注的 10 个 Python 英文博客
- Python使用django开发需要使用的包大全
- python第三方库solrpy
- python知识-定制类
- Python发送邮件
- python实现文本文件合并
- Python标准库06 子进程 (subprocess包)
- 从Python 官方文档找知识点答案的方法
- 浅谈Python时间模块
- mac下pydev+eclipse+python环境搭建
- 自学Python之变量
- python实现文本文件合并
- 网狐棋牌游戏 模拟登录封包python实现
- python的函数装饰器学习笔记
- Python 源码的考古(二) 读 0.9.1 源码
- Python 源码的考古(三) 读 0.9.1 源码2
- 我的Python 学习之旅 从0开始的小白
- 最新最全的Python 学习路线图