Python是一种强大的编程语言,可以用来获取天气数据。有很多方法可以使用Python来获取天气数据,其中最常用的两种方法是使用API和Web Scraping。 ### 使用API API(应用程序编程接口)是一个特定的接口,它允许你从外部应用程序或服务访问数据。有很多公开的API可以获取天气数据,如OpenWeatherMap API、Dark Sky API、Weather Underground API和AccuWeather API。要使用这些API,你需要注册一个帐户并创建一个API密钥。然后你就可以使用Python代码来请求这些API并获得相应的天气数据。例如,你可以使用OpenWeatherMap API来请求当前的天气信息: ```python import requests # 导入requests包 # 要请求的URL url = "http://api.openweathermap.org/data/2.5/weather" # 要传递的参数 params = { 'q': 'London,uk', # 城市名字 'appid': 'YOUR_APP_ID' # 注册时生成的APP ID } # 发送GET请求并把响应保存在response中 response = requests.get(url, params=params) # 把响应内容转化为JSON格式 data = response.json() # 打印出JSON格式的数据 print(data) ``` ### Web Scraping Web Scraping是一种将信息从Web页面中“采集”出来的方法。它通过分析HTML文件来找到所需信息,然后将其提取出来。要使用Web Scraping来获取天气数据,你需要找到一个能够显示当前天气信息的Web页面(例如BBC Weather或AccuWeather)。然后你就可以使用Python代码来分析HTML文件并提取所需信息了。例如,你可以使用BeautifulSoup包来分析BBC Weather上显示当前天气信息的HTML文件并提取出当前的天气情况、风力、风向、相对湿度和能见度等信息: ```python from bs4 import BeautifulSoup as bsoup # 导入BeautifulSoup包 # 要请求的URL url = "https://www.bbc.co.uk/weather/2650225" # 发送GET请求并把响应内容存储在html中 response = requests.get(url) html = response.content soup = bsoup(html, "html.parser") # 查找class="wr-value--temperature--c" 的div标签 temperature_div = soup.find("div", {"class": "wr-value--temperature--c"}) temperature = temperature_div.text print("Temperature:", temperature) # 查找class="wr-value--wind-speed" 的span标签 wind_speed_span = soup.find("span", {"class": "wr-value--wind-speed"}) wind_speed = wind_speed_span.text print("Wind Speed:", wind_speed) # 查找class="wr-value--wind-direction" 的span标签 wind_direction_span = soup.find("span", {"class": "wr-value--wind-direction"}) wind_direction = wind_direction_span["title"] print("Wind Direction:", wind_direction) # 查找class="wr-value--humidity" 的div标签 humidity_div = soup.find("div", {"class": "wr-value--humidity"}) humidity = humidity_div["title"] print("Humidity:", humidity) # 查找class="wr-value--visibility" 的div标签 visibility_div = soup.find("div", {"class": "wr-value--visibility"}) visibility= visibility_div["title"] print("Visibility:", visibility) ```
本文转载至知乎ID:Charles(白露未晞)知乎个人专栏
下载手机App,0基础随时随地学编程>>戳此了解
利用Python“简单地”抓取并分析一下天气数据。
T_T翻了翻公众号之前文章。。。
很少有把重点放在数据可视化分析上。。。
所以算是填补一下之前的空白吧~~~
Let's Go!
文件下载链接: https://pan.baidu.com/s/1dxoxhdu3sqAcNDUKFub0Xg
密码: jc52
Python版本:3.6.4
相关模块:PIL模块;requests模块;pyecharts模块;以及一些Python自带的模块。
安装Python并添加到环境变量,pip安装需要的相关模块即可。
额外说明:
pyecharts模块安装时请依次执行以下命令:
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install pyecharts
若安装过程中出现:
'utf-8' codec can't decode byte 0xb6
或者类似的编码错误提示。
可尝试修改Python安装文件夹下如下图所示路径下的__init__.py文件的第75行代码:
修改为下图所示内容:
利用国家气象局和百度天气查询API接口来获取当前天气数据,主要包括温度、湿度、气压等。
获取相关数据之后利用pyecharts模块和PIL模块对数据进行可视化分析。
具体实现过程详见源代码。
结果展示
使用:
在cmd窗口中运行analysis.py文件即可。
要画什么图把对应的函数调用注释去掉就好啦:
结果:
(打开相关文件中的html文件查看效果更佳,到处点一点有惊喜~~~)
(1)全国部分城市空气质量
(2)天气预报简图
(3)部分城市气温柱状图
(4)部分城市气温折线图
(5)部分城市相对气压饼图
(6)部分城市气温分布图
(7)北京城市湿度
(8)南京天气信息雷达图
有些是为了画图而画图了,所以看起来逻辑很怪T_T
代码截止2018-04-08测试无误。
Echarts作为百度开源的一个数据可视化 JS 库,功能还是十分强大的,有兴趣的朋友可以尝试去绘制一些其他有趣的图表。
Python3 os.chmod() 方法 Python3 OS 文件/目录方法概述os.chmod() 方法用于更改文件或目录的权限。语法chmod()方法语法格式如下...
Python 字符串判断 Python3 实例以下代码演示了Python字符串的判断:# Filename : test.py# author by : www..cn# 测试实例一pri...
本文转载至知乎ID:Charles(白露未晞)知乎个人专栏下载手机App,0基础随时随地学编程戳此了解导语T_T突然发现N久以前我还做过...
Python3max() 函数 Python3 数字描述max() 方法返回给定参数的最大值,参数可以为序列。语法以下是 max() 方法的语法:max( x, y,...