利用 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/

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8
  3. import json
  4. import urllib.request
  5. from urllib.parse import quote
  6. import string
  7. from xml.dom import minidom
  8. #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. #(1)获取支持城市
  2. def get_support_city(province):
  3. pass
  4. url = 'http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity?byProvinceName='+province
  5. url = quote (url, safe=string.printable)
  6. ret=urllib.request.urlopen(url)
  7. txt=ret.read().decode('utf-8')
  8. string_str=''
  9. key_value=''
  10. key_value_list=[]
  11. word_flag=0
  12. # print (txt)
  13. for i in txt:
  14. string_str += i
  15. # print(string_str)
  16. if string_str.replace(' ','').replace('\t','').replace('\n','').replace('\r','')== '<string>':
  17. # print ('---------------------------string_str')
  18. word_flag = 1
  19. if i=='>':
  20. string_str=''
  21. if word_flag==1:
  22. key_value+=i
  23. # print(key_value,'*************************************')
  24. else:
  25. key_value=''
  26. if i=='<' and word_flag==1:
  27. key_value_list.append(key_value.replace('<','').replace('>','').replace('(','').replace(')',''))
  28. key_value=''
  29. word_flag=0
  30. # print(key_value_list)
  31. support_city={}
  32. for i in key_value_list:
  33. # print(i)
  34. word=i.split(' ')
  35. support_city[word[0]]=word[1]
  36. # print(support_city)
  37. return support_city
  38. #(2)获取天气
  39. def get_weather(name):
  40. page = urllib.request.urlopen("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName="+name)
  41. lines = page.readlines()
  42. page.close()
  43. document = ""
  44. for line in lines :
  45. document = document + line.decode('utf-8')
  46. from xml.dom.minidom import parseString
  47. dom =parseString(document)
  48. strings = dom.getElementsByTagName("string")
  49. print ('今日天气实况:',strings[10].childNodes[0].data)
  50. if __name__ == '__main__':
  51. pass
  52. province=input('请输入要查询的省份:')
  53. province = quote (province, safe=string.printable)
  54. support_city=get_support_city(province)
  55. print(support_city)
  56. name=input('请在上述城市中选择城市:')
  57. # name = quote (name, safe=string.printable)
  58. name=support_city[name]
  59. 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. 天梯赛 L3-002. 堆栈

    思路:这里的线段树维护一个区间里面出现数的个数,对于Pop,push单点更新一下就好. #include<stdio.h> #include<iostream> #includ ...

  2. Java Web-Ajax学习

    Java Web-Ajax学习 概念 Ajax(Asynchronous JavaScript And XML,异步的JavaScript和XML). 异步和同步:在客户端和服务器端相互通信的基础上来 ...

  3. POJ1861(Network)-Kruskal

    题目在这 Sample Input 4 6 1 2 1 1 3 1 1 4 2 2 3 1 3 4 1 2 4 1 Sample Output 1 4 1 2 1 3 2 3 3 4 题目意思:4个点 ...

  4. java线程的五种状态

    五种状态 开始状态(new) 就绪状态(runnable) 运行状态(running) 阻塞状态(blocked) 结束状态(dead) 状态变化 1.线程刚创建时,是new状态 2.线程调用了sta ...

  5. js循环修改数组属性key值

    var keyMap = { deviceUid: "id", deviceType: "typeName", deviceCode: "code&q ...

  6. BLE 广播格式定义

    低功耗蓝牙两类报文 : 广播报文 和 数据报文. 本文讨论广播报文数据段,不包括完整报文其他部分,比如前导,接入地址等 蓝牙设备通过广播表明自己的存在,等待被连接, 就好象一个人站在接口大喊“我要脱单 ...

  7. 使用browser-sync预览pandoc markdown???

    由于 pandoc markdown在sublime下面并不能很好的预览,因此可以直接 使用 pandoc build成html,然后借助下面的工具进行实时在浏览器里面预览 http://www.br ...

  8. 剖析可执行文件ELF组成

    对比参考:剖析.o文件ELF组成 相比.o的ELF格式,有哪些变化? .rel.text和.rel.data消失了 为什么这两个节会消失? 链接器将各.o中同名的.text和.data节整合到一起时, ...

  9. python生成器学习

    python生成器学习: 案例分析一: def demo(): for i in range(4): yield i g=demo() g1=(i for i in g) #(i for i in d ...

  10. Eclipse修改项目jdk版本

    修改项目jdk版本(@Override的解决方法) (1)Eclipse的Window-Preferences->Java->Compiler(2)Eclipse的Project-> ...