Python爬取中国天气网天气数据并可视化

#-coding:utf-8
# author: 钟子龙

# 爬取中国天气网华北地区今日天气

import requests
from bs4 import BeautifulSoup
from pyecharts import Bar
ALL_DATA = []
def parse_page(url):
    headers = {
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36"
    }
    response = requests.get(url, headers=headers)
    text = response.content.decode('utf-8')
    # html5ilb有很高的容错性,如果有标签缺失,它就会自动补齐
    # pip install html5lib
    soup = BeautifulSoup(text,'html5lib')
    conMidtab = soup.find('div',class_='conMidtab')
    tables = conMidtab.find_all('table')
    for table in tables:
        trs = table.find_all('tr')[2:]
        for index,tr in enumerate(trs):
            tds = tr.find_all('td')
            # 获取城市
            city_td = tds[0]
            # 获取最低气温
            temp_td = tds[-2]
            # 获取天气状况
            weather_td = tds[1]
            if index == 0:
                city_td = tds[1]
                weather_td = tds[2]
            city = list(city_td.stripped_strings)[0]
            min_temp = list(temp_td.stripped_strings)[0]
            weather = list(weather_td.stripped_strings)[0]
            ALL_DATA.append({"city":city,"min_temp":int(min_temp),"weather":weather})
            # print({"city":city,"min_temp":int(min_temp),"weather":weather})


def main():
#   创建url池,表示不同地区的url
    urls = [
        'http://www.weather.com.cn/textFC/hb.shtml',
        'http://www.weather.com.cn/textFC/db.shtml',
        'http://www.weather.com.cn/textFC/hd.shtml',
        'http://www.weather.com.cn/textFC/hz.shtml',
        'http://www.weather.com.cn/textFC/hn.shtml',
        'http://www.weather.com.cn/textFC/xb.shtml',
        'http://www.weather.com.cn/textFC/xn.shtml',
        'http://www.weather.com.cn/textFC/gat.shtml'
    ]
    for url in urls:
        parse_page(url)

    # 根据最低气温进行排序
    ALL_DATA.sort(key=lambda data:data['min_temp'])
    data= ALL_DATA[0:10]
    cities = list(map(lambda x:x['city'],data))
    temps = list(map(lambda x:x['min_temp'],data))
    # 取前面十个
#     可视化pyecharts pip install pyecharts
#     但是目前的pyecharts与1.0版本一下的不一样,有一些方法不同,需要还原为0.1.9.4
    chart = Bar('中国最低气温')
    chart.add('',cities,temps)
    chart.render('temperature.html')


if __name__ == '__main__':
    main()




  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python是一种简单易学的编程语言,适合数据处理和分析。在爬取天气数据方面,Python有很多强大的第三方库可以帮助我们完成这项任务。 首先,我们可以使用BeautifulSoup库或Scrapy爬取天气站上的数据。这些库可用于将HTML页转换为Python对象,从而轻松地提取数据。 然后,我们可以使用pandas库将爬取数据存储在DataFrame,并对其进行有效的处理和分析。pandas提供了各种数据操作方法,例如连接、过滤、排序和分组,使我们能够有效的清理和整理数据。 最后,我们可以使用matplotlib或Seaborn等可视化库来创建数据可视化图表。这些库提供了各种绘图选项,例如折线图、散点图等,使我们能够更好地理解和分析数据。 总结来说,从爬取到处理再到可视化分析,Python提供了完整的工具链,使我们可以轻松地获取所需信息、分析数据并推出结论。 ### 回答2: Python是一门非常适合进行数据爬取数据分析的语言。如果想要实现爬取天气数据并进行可视化分析,可以使用Python的第三方库进行实现。下面我们来详细介绍一下具体的步骤。 首先,我们需要选择合适的天气数据来源。在国内,有很多天气站提供了API接口供开发者使用。例如,中国天气天气之子等等。我们可以选择其一个合适的接口进行数据爬取。比如,我们可以爬取每天的温度、湿度、风力等信息,并将其存储到本地的数据或者保存为csv、txt等格式的文件。 接下来,我们需要将爬取到的天气数据进行可视化分析。这里我们可以使用Python的matplotlib库,它是一个非常强大的数据可视化工具。我们可以通过调用该库的函数,绘制出各种类型的图表,如折线图、柱状图、散点图等等。具体的绘图方法,可以根据我们需要展示的信息以及分析目的,灵活选择。 最后,我们可以将经过可视化分析的数据图表进行可视化展示。Python提供了很多可视化库,比如Flask、Django等,可以将分析结果以Web页面的形式展现出来。另外,还可以使用Jupyter Notebook进行编程和可视化的交互式展示。 总之,通过Python进行天气数据爬取可视化分析,可以帮助我们更加全面、直观地了解天气情况,并从发现有用的规律和趋势。而本文所提到的方法只是其的一种,还有很多其他的可视化工具和数据分析思路,需要根据具体情况进行选择和应用。 ### 回答3: Python 是一种非常强大的编程语言,可用于爬取数据可视化分析。在这里,我们将介绍如何使用 Python 爬取天气数据,并对其进行可视化分析。 1. 爬取天气数据 爬取天气数据的第一步是确定数据源。一些常见的数据源包括:天气预报和气象站数据。我们可以使用 Python 程序访问这些数据源,然后将其存储在 CSV 文件。 以下是使用 Python 爬取天气数据的简单步骤: - 导入所需的库:如requests、beautifulsoup4、csv等库; - 定义爬取址:通过查看天气预报或气象站来确定要爬取址; - 解析页:使用BeautifulSoup库来解析HTML源代码; - 提取数据:从HTML源代码提取所需信息(例如,温度、湿度、气压等); - 存储数据:利用Python的csv库将提取的数据存储在CSV文件。 2. 可视化分析 Python还提供了各种库和工具,可对爬取天气数据进行可视化分析。下面是一些常用的库和工具: - Matplotlib:用于绘制图表和可视化; - Pandas:用于加载和预处理数据; - Seaborn:用于数据可视化和统计; - Plotly:用于交互式绘图; - Bokeh:用于高级交互式可视化可视化分析的步骤如下: - 导入所需的库; - 加载数据:从CSV文件加载爬取天气数据; - 预处理数据:通过排序、过滤和合并数据等方式,为可视化做准备; - 绘图:根据需要,使用Matplotlib、Seaborn、Plotly和Bokeh等库来绘制图表; - 交互:使用Plotly和Bokeh等库创建交互式可视化。它们提供了各种控件,例如滑块、下拉菜单、复选框和单选按钮,以便用户能够自定义图表。 总之,使用Python爬取天气数据并进行可视化分析是一项有用的技能,使您能够更好地理解天气变化和趋势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值