python实现自主查询实时天气
作者:So_What1412 发布时间:2021-07-02 22:43:09
标签:python,查询天气
本文实例为大家分享了python实现自主查询实时天气的具体代码,供大家参考,具体内容如下
用到了urllib2 json 很简单的一个应用 如下
获取城市编号
#coding=utf-8
import urllib2
url1 = 'http://m.weather.com.cn/data3/city.xml'
content1 = urllib2.urlopen(url1).read()
provinces = content1.split(',')
print content1 # 输出content1可以查看全部省份代码
result = ''
url = 'http://m.weather.com.cn/data3/city%s.xml'
for p in provinces:
p_code = p.split('|')[0]
url2 = url % p_code
content2 = urllib2.urlopen(url2).read() # 输出content2可以查看此省份下所有城市代码
cities = content2.split(',')
print content2
for c in cities:
c_code = c.split('|')[0]
url3 = url % c_code
content3 = urllib2.urlopen(url3).read()
print content3 #content3是此城市下所有地区代码
districts = content3.split(',')
for d in districts: # 对于每个地区,我们把它的名字记录下来,然后再发送一次请求,得到它的最终代码:
d_pair = d.split('|')
d_code = d_pair[0] #
if 5 == len(d_code):
continue
temp=[d_code]
temp.insert(4,0)
d_code ="".join(temp)
name = d_pair[1] # 名字
url4 = url % d_code
content4 = urllib2.urlopen(url4).read()
print content4
code = content4.split('|')[1]
line = "%s:%s\n" % (name, code)
result += line
print name + ':' + code
f = file('./city', 'w')
f.write(result)
f.close()
findweather
# -*- coding: utf-8 -*-
import urllib2
import json
city = {}
f =file('city','r')
src = f.readlines()
for line in src:
line = line.split('\n')[0]
name = line.split(':')[0]
code = line.split(':')[1]
city[name] = code
cityname = raw_input('请输入你要查询的城市名称:\n')
citycode = city.get(cityname)
print cityname
if citycode:
try:
url = ('http://www.weather.com.cn/data/cityinfo/%s.html' % citycode)
content = urllib2.urlopen(url).read()
data = json.loads(content)
result = data['weatherinfo']
str_temp = ('%s\n%s ~ %s') % (result['weather'],result['temp1'],result['temp2'])
print str_temp
except:
print '查询失败'
else:
print '没有找到该城市'
运行 findweather 即可。
来源:https://blog.csdn.net/qq_31821675/article/details/78207893


猜你喜欢
- 最近在看python脚本语言,脚本语言是一种解释性的语言,不需要编译,可以直接用,由解释器来负责解释。python语言很强大,而且写起来很简
- 具体代码如下所示:#coding:utf-8#!/usr/bin/python3from selenium import webdriver
- 在正文开始之前,先了解vue基于源码构建的两个版本,一个是 runtime only ,另一个是 runtime加compiler 的版本,
- vue router路由嵌套不显示问题的解决方法,具体内容如下路由嵌套,vue2.0 router中嵌套路由不成功,如何解决?我先说下我的需
- keras模型可视化:model:model = Sequential()# input: 100x100 images with 3 ch
- 当前登入的用户以及他(她)的权限可以通过 RequestContext 在模板的context中使用。注意从技术上来说,只有当你使用了 Re
- 0.前言最近学习的python第一个项目实战,《外星人入侵》,成功实现所有功能,给大家提供源代码环境安装:python 3.7+ pygam
- SQL Update常见写法Oralce和DB2都支持的语法:update test1?set (test1.name,test1.age)
- 在python学习的过程中,我们最先接触到的就是python的数组,元组,字典等基础类型,但很少有人深入讨论python的内置序列类型以及它
- 目录创建一个Django项目settings.py项目配置文件urls.py路由系统总结创建一个Django项目创建一个名为project的
- 一、拉格朗日的基本思想拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法。许多实际问题中都用
- 在这个周末刚刚写出来的python桌面应用--网络聊天室,主要通过pyqt5作为桌面应用框架,socket作为网络编程的框架,从而实现包括客
- 在logging中,Logger's level 的默认等级为warning所以虽然在handler中setlervel了,Logg
- 文章背景:某天,我的一个同事给我看了CSDN上面的一篇关于编程语言排行榜的文章,里面我看到VB还是排名很不错的,我就说,asp(vbscri
- 学习目的: 掌握文本框的用法 初次接触try…catch…语法 今天内容很轻松,用一个例子,输入年月日,判断输入是否正确 图片如下: 用个
- 引擎简介Innodb引擎Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别。该引擎还提供了行级锁和外键约束
- 装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对
- 本文实例讲述了JS基于面向对象实现的选项卡效果。分享给大家供大家参考,具体如下:中间过渡环节:把面向过程的程序,改写成面向对象的形式<
- 网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据。虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率
- 本文实例为大家分享了Tensorflow之MNIST CNN实现并保存、加载模型的具体代码,供大家参考,具体内容如下废话不说,直接上代码#