利用 Python 从互联网公开服务中获取天气预报信息。天气信息来源网站:
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
实现以下函数:
(1)获取支持城市:
函数原型: def get_support_city(province)
参数 province:字符串,省份名称,如“陕西”
返回值:字典类型,Key 为城市名称,Value 为城市代码;如:{'西安': '57036', '韩城': '53955',
'安康': '57245', '汉中': '57127', '宝鸡': '57016''}
提示:采用 getSupportCity 服务。
(2)获取天气:
函数原型: def get_weather(name)
参数 name:字符串,城市名称。
返回值:字符串,网站返回记录中的“今日天气实况”内容,如“今日天气实况:气温:
3℃;风向/风力:西北风 2 级;湿度: 66%;紫外线强度:最弱。空气质量:中。”
提示:采用 getWeatherbyCityName 服务。
参考网站:
https://blog.csdn.net/cw123458945/article/details/8146984
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
Web 可编程资源
http://www.programmableweb.com/

#!/usr/bin/python
# -*- coding: UTF-8
import json
import urllib.request
from urllib.parse import quote
import string
from xml.dom import minidom #12.获取当前天气情况

欢迎光临程序代写小店https://item.taobao.com/item.htm?spm=a230r.1.14.59.255028c3ALNkZ0&id=586797758241&ns=1&abbucket=15#detail

欢迎点击链接加入群聊【程序代写-接单群】共同致富:https://jq.qq.com/?_wv=1027&k=5WxihsL

群号:733065427


#(1)获取支持城市
def get_support_city(province):
pass
url = 'http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity?byProvinceName='+province
url = quote (url, safe=string.printable)
ret=urllib.request.urlopen(url)
txt=ret.read().decode('utf-8')
string_str=''
key_value=''
key_value_list=[]
word_flag=0
# print (txt)
for i in txt:
string_str += i
# print(string_str)
if string_str.replace(' ','').replace('\t','').replace('\n','').replace('\r','')== '<string>':
# print ('---------------------------string_str')
word_flag = 1
if i=='>':
string_str=''
if word_flag==1:
key_value+=i
# print(key_value,'*************************************')
else:
key_value=''
if i=='<' and word_flag==1:
key_value_list.append(key_value.replace('<','').replace('>','').replace('(','').replace(')',''))
key_value=''
word_flag=0
# print(key_value_list)
support_city={}
for i in key_value_list:
# print(i)
word=i.split(' ')
support_city[word[0]]=word[1]
# print(support_city)
return support_city
#(2)获取天气
def get_weather(name):
page = urllib.request.urlopen("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName="+name)
lines = page.readlines()
page.close()
document = ""
for line in lines :
document = document + line.decode('utf-8') from xml.dom.minidom import parseString
dom =parseString(document)
strings = dom.getElementsByTagName("string")
print ('今日天气实况:',strings[10].childNodes[0].data) if __name__ == '__main__':
pass
province=input('请输入要查询的省份:')
province = quote (province, safe=string.printable)
support_city=get_support_city(province)
print(support_city)
name=input('请在上述城市中选择城市:')
# name = quote (name, safe=string.printable)
name=support_city[name]
city_weather = get_weather (name)

python获取当前天气情况的更多相关文章

  1. webService获取电话号归属地和获取天气情况步骤,及创建属于自己的webservice

    一.什么是Web服务 Web服务是一种可以用来解决跨网络应用集成问题的开发模式,目的是保证不同平台的应用服务可以互操作 二.Web服务的三个核心 Soap: SOAP(Simple Object Ac ...

  2. 解析中国天气网页面获取七日天气 (Java, Python)

    说明 解析中国天气网的页面,获取七日天气. 使用 htmlparser .这是它的 API 文档. 代码 SevenDayWeather.java import java.io.BufferedRea ...

  3. python获取网站http://www.weather.com.cn 城市 8-15天天气

    参考一个前辈的代码,修改了一个案例开始学习beautifulsoup做爬虫获取天气信息,前辈获取的是7日内天气, 我看旁边还有8-15日就模仿修改了下.其实其他都没有变化,只变换了获取标签的部分.但是 ...

  4. python 获取天气信息,并绘制曲线

    import urllib.request import gzip import json print('------天气查询------') def get_weather_data() : cit ...

  5. 基于python编写的天气抓取程序

    以前一直使用中国天气网的天气预报组件都挺好,可是自从他们升级组件后数据加载变得非常不稳定,因为JS的阻塞常常导致网站打开速度很慢.为了解决这个问题决定现学现用python编写一个抓取程序,每天定时抓取 ...

  6. Python爬虫-播报天气信息(生成exe文件)待续

    #!/usr/bin/env python3 # -*- coding : utf-8 -*- '''1.从https://my.oschina.net/joanfen/blog/140364获取要播 ...

  7. 用 Python 编写一个天气查询应用

    效果预览: 一.获取天气信息 使用python获取天气有两种方式. 1)是通过爬虫的方式获取天气预报网站的HTML页面,然后使用xpath或者bs4解析HTML界面的内容. 2)另一种方式是根据天气预 ...

  8. 用 Python 编写一个天气查询应用 pyqt5

    ​ 效果预览: !   ​ 一.获取天气信息 使用python获取天气有两种方式. 1)是通过爬虫的方式获取天气预报网站的HTML页面,然后使用xpath或者bs4解析HTML界面的内容. 2)另一种 ...

  9. 通过server酱实现定时推送天气情况,再不用担心你的糊涂蛋女友忘带伞了~~

    昨天菜鸟小白给大家留了一个课后作业,如何实现天气的定时推送.有没有小伙伴做出来答案呢?今天菜鸟小白给大家分享我的实现方式吧.这个是我今天整的程序流程图,昨天我们还只是实现了中间的通过和风天气API获取 ...

随机推荐

  1. Angular 学习笔记 ( 我追的 feature 和 bug )

    Angular 有许多功能还不齐全,也有不少 bug 让人很头疼,所以这里做一些记入 Angular Bug 1.input type="number", valueChanges ...

  2. 优先队列问题 get it !!

    首先 队列的基本用法 头文件 #include<queue> priority_queue < int/string/struct> q//  q为队列的名字 基本操作 q.p ...

  3. python的excel处理之openpyxl

    一.颜色处理 cell = sheet.cell(row, col)font = Font(size=12, bold=False, name='Arial', color=colors.BLACK) ...

  4. How to change SAPABAP1 schema password In HANA

    Symptom How to change SAPABAP1 schema password Environment HANA 1.x HANA 2.x Resolution Shutdown the ...

  5. 面试常考HTTP协议知识点

    协议简介 1. 应用层协议, 一般以TCP为基础,数据收发通过TCP实现: 2. 一次性连接.服务器与客户端的每次连接只处理一个请求,下次请求重新建立连接: 3. 无状态协议.服务器不保留与客户交易时 ...

  6. [#Linux] CentOS 7 配置JDK后,eclipse无法启动,提示jdk路径错误。

    ​​​​ 解决方案:在eclipse的目录下创建一个jre文件夹,在jre文件夹里创建一个jdk的bin目录的链接 1.进入到eclipse目录下,右键在终端打开. 2.创建jre目录:mkdir j ...

  7. kali linux Desktop Environemt types and kali linux install virualbox

    1.we know the kali linux desktop environmet can also be costomized ,Desktop environmet can use GNOME ...

  8. KVM虚拟机快照链创建,合并,删除及回滚研究

    1 QEMU,KVM,libvirt关系 QEMU QEMU提供了一个开源的服务器全虚拟化解决方案,它可以使你在特定平台的物理机上模拟出其它平台的处理器,比如在X86 CPU上虚拟出Power的CPU ...

  9. Linux命令——expr

    前言 有时,在处理命令行时(特别是在处理shell脚本时),您可能会发现自己处于必须执行搜索字符串中的子字符串,查找其索引以及其他内容,或者执行比较和算术运算等情况.上述问题expr都能帮我们解决. ...

  10. C++——static & const

    静态成员 由关键字static修饰说明的类成员,称为静态类成员(static class member).虽然使用static修饰说明,但与函数中的静态变量有明显差异.类的静态成员为其所有对象共享,不 ...