举报投诉联系我们 手机版 热门标签 鳄鱼CMS
您的位置:鳄鱼CMS > python获取天气数据 Python3抓取并分析天气数据

python获取天气数据 Python3抓取并分析天气数据

2023-03-03 11:31 Python3教程

python获取天气数据 Python3抓取并分析天气数据

python获取天气数据

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) ```

Python3抓取并分析天气数据

本文转载至知乎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 库,功能还是十分强大的,有兴趣的朋友可以尝试去绘制一些其他有趣的图表。

阅读全文
以上是鳄鱼CMS为你收集整理的python获取天气数据 Python3抓取并分析天气数据全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 鳄鱼CMS eyucms.com 版权所有 联系我们