首页 > 编程语言 >Python网络爬虫--选定地区对未来7天天气情况的分析

Python网络爬虫--选定地区对未来7天天气情况的分析

时间:2023-06-08 18:55:09浏览次数:40  
标签:plot name Python 绘制 爬虫 -- df AQI opts

(一)、选题背景

在当今信息化时代,天气情况是人们生活中非常重要的一部分。因此,将Python网络爬虫和数据可视化技术应用到天气预报分析中,可以为人们提供更加精确、直观的未来天气预报信息。

通过使用Python网络爬虫技术获取最新的天气数据,并结合数据可视化技术,将数据以图表、地图等形式展示出来,可以让人们更加清晰地了解未来7天天气情况的变化趋势,从而做好相应的防护措施和安排。

因此,这个博客主题,旨在介绍如何使用Python网络爬虫技术对未来7天天气进行数据采集,并使用数据可视化技术对天气数据进行处理和展示,以增强人们的天气预报分析能力。

(二)、大数据分析设计方案(10 分)

1.本数据集的数据内容与数据特征分析

2.数据分析的课程设计方案概述(包括实现思路与技术难点)

 

这个数据分析的设计方案一般可以分为以下几个步骤:

1.采集数据
通过网络爬虫技术,从天气预报网站上获取最新的天气数据。这部分需要熟练掌握Python编程语言和网络爬虫相关知识。

2.数据清洗与处理
对采集到的数据进行清洗和预处理,例如去除重复数据、填充缺失数据等。这个步骤需要较丰富的数据分析经验和技巧,以确保最终的数据结果准确性和可靠性。

3.数据可视化
使用Python中的数据可视化库(例如matplotlib、seaborn等),将清洗后的数据进行可视化处理,以展示未来7天的天气情况变化趋势。这个步骤需要对数据可视化技术有较深入的了解和掌握。

这个数据分析的难点主要集中在数据清洗和处理,因为现实中采集到的数据通常比较杂乱和不完整,需要进行针对性的清洗和预处理,才能使数据的质量得到保证;同时,在进行数据可视化时,需要对图表的设计和排版有一定的美学意识,以凸显数据分析的重点和亮点,从而提高分析结果的可读性和吸引力。

此外,还需要时刻关注天气预报网站的更新及其网站数据结构的变化,做好数据采集和清洗的相关调整。

(三)、数据分析步骤(70 分)

1.数据源

http://www.weather.com.cn/

页面

 

python用到的运行环境,python(IDLE)

用到的第三方库有

import requests
from bs4 import BeautifulSoup
import pandas as pd
from pyecharts.charts import Line, Bar, Scatter, Radar, HeatMap
from pyecharts import options as opts
import matplotlib.pyplot as plt
from pyecharts.components import Table
from pyecharts.options import ComponentTitleOpts

  

2.具体步骤详解

 用字典包括几个地区,对其进行数据分析和清洗

# 用于存储各城市对应的拼音编码
city_pairs = {
    '北京': 'beijing',
    '上海': 'shanghai',
    '广州': 'guangzhou',
    '深圳': 'shenzhen',
    '杭州': 'hangzhou',
    '成都': 'chengdu',
    '泉州市丰泽区': 'quanzhou'
}

# 获取指定城市的天气和aqi数据
def get_weather_aqi(city_pinyin):
    try:
        # 请求url
        url = f'http://www.tianqihoubao.com/aqi/{city_pinyin}.html'
        # 发送请求
        res = requests.get(url)
        # 检查请求状态
        if res.status_code == 200:
            soup = BeautifulSoup(res.text, 'html.parser')
            # 获取表格数据
            table = soup.find_all('table')[0]
            df = pd.read_html(table.prettify(), header=0)[0]
            # 删除无关列
            df.drop(columns=['排名', '质量等级'], inplace=True)
            # 重命名列
            df.columns = ['date', 'aqi', 'level', 'pm2_5', 'pm10', 'so2', 'no2', 'co', 'o3_8h', 'max_temperature', 'min_temperature', 'humidity', 'wind_power', 'rain']
            # 按日期排序
            df.sort_values(by='date', inplace=True)
            # 重置数据索引
            df.reset_index(drop=True, inplace=True)
            return df
    except:
        return None

  

接下来以泉州市丰泽区为例子进行下列可视化分析

进行温度(最高,最低)通过折线图来看未来天气变化

# 可视化分析1:绘制温度折线图
def plot_temperature(df):
    # 使用pyecharts绘制折线图
    line = (
        Line()
        .add_xaxis(df['date'])
        .add_yaxis('最高温度', df['max_temperature'], label_opts=opts.LabelOpts(is_show=False))
        .add_yaxis('最低温度', df['min_temperature'], label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(title_opts=opts.TitleOpts(title="温度变化曲线"), 
                         xaxis_opts=opts.AxisOpts(name='日期'), yaxis_opts=opts.AxisOpts(name='温度(°C)'))
    )
    line.render_notebook()

  

 就得到该图

 再进行对湿度进行折线图的图表分析

# 可视化分析2:绘制湿度折线图
def plot_humidity(df):
    # 使用pyecharts绘制折线图
    line = (
        Line()
        .add_xaxis(df['date'])
        .add_yaxis('湿度', df['humidity'], markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]))
        .set_global_opts(title_opts=opts.TitleOpts(title="湿度变化曲线"), 
                         xaxis_opts=opts.AxisOpts(name='日期'), yaxis_opts=opts.AxisOpts(name='湿度(%)'))
    )
    line.render_notebook()

  

得到该图,可以很明显看出未来几天湿度的变化

 

再进行AQI折线图分析AQI的变化

# 可视化分析3:绘制AQI折线图
def plot_aqi(df):
    # 使用pyecharts绘制折线图
    line = (
        Line()
        .add_xaxis(df['date'])
        .add_yaxis('AQI', df['aqi'], label_opts=opts.LabelOpts(is_show=False),
                   markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]))
        .set_global_opts(title_opts=opts.TitleOpts(title="AQI变化曲线"),
                         xaxis_opts=opts.AxisOpts(name='日期'), yaxis_opts=opts.AxisOpts(name='AQI'))
    )
    line.render_notebook()

  

 得到该图

 

进行绘制降雨概率折线图

# 可视化分析4:绘制降雨概率折线图
def plot_rain(df):
    # 使用pyecharts绘制折线图
    line = (
        Line()
        .add_xaxis(df['date'])
        .add_yaxis('降雨概率', df['rain'], label_opts=opts.LabelOpts(is_show=False), 
                   markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]))
        .set_global_opts(title_opts=opts.TitleOpts(title="降雨概率变化曲线"), 
                         xaxis_opts=opts.AxisOpts(name='日期'), yaxis_opts=opts.AxisOpts(name='降雨概率(%)'))
    )
    line.render_notebook()

  

 

后得到降雨的折线图

通过以上几种分析,可以很直观的看出温度,湿度,AQI,降雨概率情况,接下来进行综合判断

可视化分析5:绘制温度-湿度散点图

# 可视化分析5:绘制温度-湿度散点图
def plot_temperature_humidity_scatter(df):
    # 使用pyecharts绘制散点图
    scatter = (
        Scatter()
        .add_xaxis(df['min_temperature'])
        .add_yaxis('湿度', df['humidity'])
        .set_global_opts(title_opts=opts.TitleOpts(title="温度-湿度散点图"), 
                         xaxis_opts=opts.AxisOpts(name='最低温度(°C)'), yaxis_opts=opts.AxisOpts(name='湿度(%)'))
    )
    scatter.render_notebook()

  

 

得到温度湿度散点图

 再进行绘制AQI-降雨概率散点图

# 可视化分析6:绘制AQI-降雨概率散点图
def plot_aqi_rain_scatter(df):
    # 使用pyecharts绘制散点图
    scatter = (
        Scatter()
        .add_xaxis(df['aqi'])
        .add_yaxis('降雨概率', df['rain'])
        .set_global_opts(title_opts=opts.TitleOpts(title="AQI-降雨概率散点图"), 
                         xaxis_opts=opts.AxisOpts(name='AQI'), yaxis_opts=opts.AxisOpts(name='降雨概率(%)'))
    )
    scatter.render_notebook()

  

 

得到了AQI和降雨概率的关系

再进行同时绘制温度、降雨概率和AQI曲线图

# 可视化分析7:同时绘制温度、降雨概率和AQI曲线图
def plot_weather_aqi(df):
    fig, ax1 = plt.subplots(figsize=(12, 6))  # 创建指定大小的图形
    ax2 = ax1.twinx()  # 创建右侧y轴
    ax1.plot(df['date'], df['max_temperature'], color='orange', label='最高温度')  # 绘制最高温度曲线
    ax1.plot(df['date'], df['min_temperature'], color='red', label='最低温度')  # 绘制最低温度曲线
    ax1.plot(df['date'], df['rain'], color='blue', label='降雨概率')  # 绘制降雨概率曲线
    ax2.plot(df['date'], df['aqi'], color='green', label='AQI')  # 绘制AQI曲线
    # 设置x轴刻度标签旋转角度
    plt.xticks(rotation=45)
    # 设置图例位置及字体大小
    ax1.legend(loc='upper right', fontsize=12)
    ax2.legend(loc='upper left', fontsize=12)
    # 设置坐标轴标签及标题
    ax1.set_xlabel('日期')
    ax1.set_ylabel('温度(°C)/降雨概率(%)')
ax2.set_ylabel('AQI')
plt.title('天气变化曲线', fontsize=16)
plt.show()

  得到该图

 

对空气质量AQI进行更全面的分析,空气质量包括二氧化碳,二氧化硫控制区等

 

#可视化分析8:绘制空气质量雷达图
def plot_aqi_radar(df):
# 使用pyecharts绘制雷达图
radar = (
Radar()
.add_schema(
schema=[
opts.RadarIndicatorItem(name='AQI', max_=300),
opts.RadarIndicatorItem(name='PM2.5', max_=300),
opts.RadarIndicatorItem(name='PM10', max_=500),
opts.RadarIndicatorItem(name='SO2', max_=100),
opts.RadarIndicatorItem(name='NO2', max_=200),
opts.RadarIndicatorItem(name='CO', max_=10),
opts.RadarIndicatorItem(name='O3(8h)', max_=200)
]
)
.add('丰泽区', [df['aqi'].mean(), df['pm2_5'].mean(), df['pm10'].mean(), df['so2'].mean(),
df['no2'].mean(), df['co'].mean(), df['o3_8h'].mean()])
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="空气质量雷达图"))
)
radar.render_notebook()

  得到如下图

 

 

对空气质量的其中因素做一个更直观的热力图

#可视化分析9:绘制AQI热力图
def plot_aqi_heatmap(df):
# 使用pyecharts绘制热力图
data = [(i['date'], i['aqi']) for , i in df.iterrows()]
heatmap = (
HeatMap()
.add_xaxis(list(set(df['date'])))
.add_yaxis("AQI", list(reversed(list(set(df['hour']))))), data,
label_opts=opts.LabelOpts(is_show=True, position="inside"),
itemstyle_opts=opts.ItemStyleOpts(border_width=1, border_color='white')
)
.set_global_opts(
title_opts=opts.TitleOpts(title="AQI热力图"),
visualmap_opts=opts.VisualMapOpts(
max=300,
range_color=[
"#030099",
"#3B0B98",
"#7A0177",
"#BB00BB",
"#DD00DD",
"#EE3A8C",
"#FF69B4",
"#FFC0CB",
"#FFDAB9",
"#FFFACD",
"#FFFFE0",
"#FFFFFF"
]
)
)
)
heatmap.render_notebook()

  得到该热力图如下

 3.主函数入口,并且封装,对进行函数调用

#主程序入口
if name == 'main':
# 获取用户输入城市名
city_name = input('请输入城市名:')
# 获取城市对应的拼音编码
city_pinyin = city_pairs.get(city_name)
if city_pinyin is None:
print(f'未找到城市{city_name}的天气数据,请输入正确的城市名')
else:
# 获取城市天气和aqi数据
df = get_weather_aqi(city_pinyin)
if df is None:
print(f'获取城市{city_name}天气数据失败,请稍后重试')
else:
# 可视化分析1:绘制温度折线图
plot_temperature(df)

        # 可视化分析2:绘制湿度折线图
        plot_humidity(df)

        # 可视化分析3:绘制AQI折线图
        plot_aqi(df)

        # 可视化分析4:绘制降雨概率折线图
        plot_rain(df)

        # 可视化分析5:绘制温度-湿度散点图
        plot_temperature_humidity_scatter(df)

        # 可视化分析6:绘制AQI-降雨概率散点图
        plot_aqi_rain_scatter(df)

        # 可视化分析7:同时绘制温度、降雨概率和AQI曲线图
        plot_weather_aqi(df)

        # 可视化分析8:绘制空气质量雷达图
        plot_aqi_radar(df)

        # 可视化分析9:绘制AQI热力图
        plot_aqi_heatmap(df)

        # 可视化分析10:绘制空气质量表格
        plot_aqi_table(df)

  4.附上完整代码

import requests

from bs4 import BeautifulSoup
import pandas as pd
from pyecharts.charts import Line, Bar, Scatter, Radar, HeatMap
from pyecharts import options as opts
import matplotlib.pyplot as plt
from pyecharts.components import Table
from pyecharts.options import ComponentTitleOpts # 用于存储各城市对应的拼音编码 city_pairs = { '北京': 'beijing',
'上海': 'shanghai', '广州': 'guangzhou', '深圳': 'shenzhen', '杭州': 'hangzhou', '成都': 'chengdu', '泉州市丰泽区': 'quanzhou' } # 获取指定城市的天气和aqi数据 def get_weather_aqi(city_pinyin): try: # 请求url url = f'http://www.tianqihoubao.com/aqi/{city_pinyin}.html' # 发送请求 res = requests.get(url) # 检查请求状态 if res.status_code == 200: soup = BeautifulSoup(res.text, 'html.parser') # 获取表格数据 table = soup.find_all('table')[0] df = pd.read_html(table.prettify(), header=0)[0] # 删除无关列 df.drop(columns=['排名', '质量等级'], inplace=True) # 重命名列 df.columns = ['date', 'aqi', 'level', 'pm2_5', 'pm10', 'so2', 'no2', 'co', 'o3_8h', 'max_temperature', 'min_temperature', 'humidity', 'wind_power', 'rain'] # 按日期排序 df.sort_values(by='date', inplace=True) # 重置数据索引 df.reset_index(drop=True, inplace=True) return df except: return None # 可视化分析1:绘制温度折线图
def plot_temperature(df):
# 使用pyecharts绘制折线图 line = ( Line() .add_xaxis(df['date']) .add_yaxis('最高温度', df['max_temperature'], label_opts=opts.LabelOpts(is_show=False)) .add_yaxis('最低温度', df['min_temperature'], label_opts=opts.LabelOpts(is_show=False)) .set_global_opts(title_opts=opts.TitleOpts(title="温度变化曲线"), xaxis_opts=opts.AxisOpts(name='日期'), yaxis_opts=opts.AxisOpts(name='温度(°C)')) ) line.render_notebook() # 可视化分析2:绘制湿度折线图 def plot_humidity(df):
# 使用pyecharts绘制折线图 line = ( Line() .add_xaxis(df['date']) .add_yaxis('湿度', df['humidity'], markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")])) .set_global_opts(title_opts=opts.TitleOpts(title="湿度变化曲线"), xaxis_opts=opts.AxisOpts(name='日期'), yaxis_opts=opts.AxisOpts(name='湿度(%)')) ) line.render_notebook() # 可视化分析3:绘制AQI折线图 def plot_aqi(df): # 使用pyecharts绘制折线图 line = ( Line() .add_xaxis(df['date']) .add_yaxis('AQI', df['aqi'], label_opts=opts.LabelOpts(is_show=False), markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")])) .set_global_opts(title_opts=opts.TitleOpts(title="AQI变化曲线"), xaxis_opts=opts.AxisOpts(name='日期'), yaxis_opts=opts.AxisOpts(name='AQI'))
) line.render_notebook() Mind_center: # 可视化分析4:绘制降雨概率折线图 def plot_rain(df): # 使用pyecharts绘制折线图 line = ( Line() .add_xaxis(df['date']) .add_yaxis('降雨概率', df['rain'], label_opts=opts.LabelOpts(is_show=False), markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")])) .set_global_opts(title_opts=opts.TitleOpts(title="降雨概率变化曲线"), xaxis_opts=opts.AxisOpts(name='日期'), yaxis_opts=opts.AxisOpts(name='降雨概率(%)')) ) line.render_notebook() # 可视化分析5:绘制温度-湿度散点图 def plot_temperature_humidity_scatter(df):
# 使用pyecharts绘制散点图 scatter = ( Scatter() .add_xaxis(df['min_temperature']) .add_yaxis('湿度', df['humidity']) .set_global_opts(title_opts=opts.TitleOpts(title="温度-湿度散点图"), xaxis_opts=opts.AxisOpts(name='最低温度(°C)'), yaxis_opts=opts.AxisOpts(name='湿度(%)'))
)
scatter.render_notebook() # 可视化分析6:绘制AQI-降雨概率散点图 def plot_aqi_rain_scatter(df):
# 使用pyecharts绘制散点图 scatter = ( Scatter() .add_xaxis(df['aqi']) .add_yaxis('降雨概率', df['rain']) .set_global_opts(title_opts=opts.TitleOpts(title="AQI-降雨概率散点图"), xaxis_opts=opts.AxisOpts(name='AQI'), yaxis_opts=opts.AxisOpts(name='降雨概率(%)'))
)
scatter.render_notebook() # 可视化分析7:同时绘制温度、降雨概率和AQI曲线图 def plot_weather_aqi(df):
fig, ax1 = plt.subplots(figsize=(12, 6)) # 创建指定大小的图形
   ax2 = ax1.twinx() # 创建右侧y轴
   ax1.plot(df['date'], df['max_temperature'], color='orange', label='最高温度') # 绘制最高温度曲线
   ax1.plot(df['date'], df['min_temperature'], color='red', label='最低温度') # 绘制最低温度曲线
ax1.plot(df['date'], df['rain'], color='blue', label='降雨概率') # 绘制降雨概率曲线
  ax2.plot(df['date'], df['aqi'], color='green', label='AQI') # 绘制AQI曲线
   # 设置x轴刻度标签旋转角度 plt.xticks(rotation=45)
   # 设置图例位置及字体大小 ax1.legend(loc='upper right', fontsize=12) ax2.legend(loc='upper left', fontsize=12)
   # 设置坐标轴标签及标题 ax1.set_xlabel('日期') ax1.set_ylabel('温度(°C)/降雨概率(%)') ax2.set_ylabel('AQI') plt.title('天气变化曲线', fontsize=16)
plt.show() #可视化分析8:绘制空气质量雷达图
def plot_aqi_radar(df):
# 使用pyecharts绘制雷达图 radar = ( Radar() .add_schema( schema=[opts.RadarIndicatorItem(name='AQI', max_=300),
opts.RadarIndicatorItem(name='PM2.5', max_=300),
opts.RadarIndicatorItem(name='PM10', max_=500),
opts.RadarIndicatorItem(name='SO2', max_=100),
opts.RadarIndicatorItem(name='NO2', max_=200),
opts.RadarIndicatorItem(name='CO', max_=10),
opts.RadarIndicatorItem(name='O3(8h)', max_=200) ] ) .add('丰泽区', [df['aqi'].mean(), df['pm2_5'].mean(), df['pm10'].mean(), df['so2'].mean(), df['no2'].mean(), df['co'].mean(), df['o3_8h'].mean()]) .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts(title_opts=opts.TitleOpts(title="空气质量雷达图")) ) radar.render_notebook() #可视化分析9:绘制AQI热力图 def plot_aqi_heatmap(df): # 使用pyecharts绘制热力图 data = [(i['date'], i['aqi']) for , i in df.iterrows()] heatmap = ( HeatMap() .add_xaxis(list(set(df['date']))) .add_yaxis("AQI", list(reversed(list(set(df['hour']))))), data,
label_opts=opts.LabelOpts(is_show=True, position="inside"),
itemstyle_opts=opts.ItemStyleOpts(border_width=1, border_color='white') ) .set_global_opts( title_opts=opts.TitleOpts(title="AQI热力图"), visualmap_opts=opts.VisualMapOpts(
max=300,
range_color=["#030099",
"#3B0B98",
"#7A0177",
"#BB00BB",
"#DD00DD",
"#EE3A8C",
"#FF69B4",
"#FFC0CB",
"#FFDAB9",
"#FFFACD",
"#FFFFE0",
"#FFFFFF" ] ) ) ) heatmap.render_notebook() #主程序入口
if name == 'main':
# 获取用户输入城市名
city_name = input('请输入城市名:')
# 获取城市对应的拼音编码
city_pinyin = city_pairs.get(city_name)
if city_pinyin is None:
print(f'未找到城市{city_name}的天气数据,请输入正确的城市名')
else:
# 获取城市天气和aqi数据 df = get_weather_aqi(city_pinyin) if df is None:
print(f'获取城市{city_name}天气数据失败,请稍后重试')
else:
# 可视化分析1:绘制温度折线图
plot_temperature(df) # 可视化分析2:绘制湿度折线图 plot_humidity(df) # 可视化分析3:绘制AQI折线图 plot_aqi(df) # 可视化分析4:绘制降雨概率折线图 plot_rain(df) # 可视化分析5:绘制温度-湿度散点图 plot_temperature_humidity_scatter(df) # 可视化分析6:绘制AQI-降雨概率散点图 plot_aqi_rain_scatter(df) # 可视化分析7:同时绘制温度、降雨概率和AQI曲线图 plot_weather_aqi(df) # 可视化分析8:绘制空气质量雷达图 plot_aqi_radar(df) # 可视化分析9:绘制AQI热力图 plot_aqi_heatmap(df)

  

 (四)、总结

  爬取天气信息是一种非常有用的功能,可以让人们更加方便地获取各个地区的天气情况,从而更好地安排日常生活。然而,这项工作也存在一些需要注意的问题和挑战。而这些代码的功能就是对天气数据进行一些出来归纳,让人看起来对未来的天气更直观。

  首先,爬取天气信息可能会遇到反爬机制。因为许多天气网站不希望自己的数据被第三方获取,所以它们会设置一些限制,如验证码、IP封锁等,来防止爬虫程序的访问。为了避免这些问题,我们需要使用一些反反爬措施,例如使用代理、使用模拟浏览器等手段。

  其次,天气信息的爬取也需要经常更新。由于天气情况具有时效性,每小时甚至每分钟的变化都可能对人们产生影响,所以我们需要保证天气数据的实时性和准确性,以便用户获取到最新的天气信息。因此,需要定期爬取数据并及时更新。

  最后,在进行天气信息爬取的过程中,我们还需要考虑一些相关的法律和道德问题。例如隐私保护、版权保护等。我们需要确保自己的爬虫程序符合相关法律法规,并不会侵犯他人的合法权益。

  总之,爬取天气信息虽然是一项非常有用的功能,但同时也需要我们考虑很多问题,包括反爬机制、数据更新、法律和道德等方面。只有充分考虑这些问题,并采取相应的措施,才能让这项工作真正发挥应有的价值。

  在敲代码的过程中,可以学到以下的一些东西:

  1. 解决问题的能力:编写代码就是为了解决问题,因此在编写代码的过程中,你需要不断地思考和分析问题,并尝试找到最优解决方案。

  2. 逻辑思维能力:编写代码需要有一定的逻辑思维能力,需要对问题进行拆分、分析和整合,然后再把各个部分组合起来实现功能。

  3. 技术能力:编写代码需要掌握一定的编程语言、工具和技术,因此在编写代码的过程中,你会不断地学习新的技术和知识,提升自己的技术水平。

  4. 耐心和毅力:编写代码可能会遇到很多困难和问题,需要有足够的耐心和毅力去排查和解决这些问题。

标签:plot,name,Python,绘制,爬虫,--,df,AQI,opts
From: https://www.cnblogs.com/lyl-yl/p/17466347.html

相关文章

  • 墨天轮国产关系型分布式数据库榜单解读
    分布式关系型数据库概述作为数据库演进方向之一,分布式能力受到更多用户的关注。从技术架构演进来看,数据库正走过了从单机式、集中式到分布式的发展过程,目前是多种架构并存的阶段。分布式架构以其更好的存储与计算扩展能力,受到更多的关注。在墨天轮社区的中国数据库流行度排行榜上......
  • js 树级数组扁平化和扁平化数组整理成树级
    1.扁平化数组整理为树级,主要实现方法,过滤出没有父级标识(parentId)的作为列表的第一层,有父级标识的项放在其父级的children下面,也跟数组是引用类型的有很大关系父级标识为falsy或者父级为某个特定值(topValue)时,该项就在树级的顶级functionlist2Tree(list,key="id",paren......
  • el-table关于文件上传
    问题1.fileList无法获取到传入的文件名在elementui中不支持,自动更新fileList的值,需要手动添加 问题2:上传文件后,通过on-change无法获取到url使用照片墙的方式可以获取到,添加list-type="picture-card" ......
  • docker实战教程
    基础篇一、什么是docker解决了运行环境和配置问题的软件容器。方便做持续集成并有助于整体发布的容器虚拟技术。一次构建,随处运行。官网:docker官网:http://www.docker.com仓库DockerHub官网:https://hub.docker.comCentOS7仅发行版本中的内核支持Docker。Docker运行在Cen......
  • 揭秘新一代云数仓技术架构与最佳实践
    从传统数仓到湖仓一体,历经三十多年发展,技术的浪潮快速迭代,以云原生数仓为中心的现代数据栈时代已然到来。背后的核心的原因在于,企业正在加速走向数字化、智能化,对数据的应用也提出了全新要求,特别是对数据的实时分析、实时部署需求更加的强烈,而云数据仓库为用户实现云原生、智能运维......
  • 如何在服务器上安装虚拟机呢?
    虚拟机(VirtualMachine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS......
  • 使用HbuilderX3.8.3_把开发的小程序发布为Html5页面上传到_免费托管空间---uniapp_小
      找了很久,毕竟自己也是做测试,本来想买个服务器来着,由于了一下,还是给我找到了最终~自己做的小程序想部署,又不想买阿里云服务器,部署到阿贝云也不错,阿贝云会给开发者提供, 免费虚拟主机和免费的云服务器,最近我用了一段时间感觉还很不错也很稳定我测试用完全够用了,现......
  • 【完全揭秘】Traefik云原生网关——助力你的业务破万QPS
    Traefik是一款开源的反向代理和负载均衡软件,可以自动地为多个微服务实例进行负载均衡,并提供HTTP/HTTPS/TCP/UDP等协议支持。Traefik具有简单易用、自动发现服务、动态配置、可插拔的中间件等特点,被广泛应用于云原生和容器化场景中,介绍中也是表明自己是一个云原生网关。Traefik......
  • Java基础——深入了解泛型机制
    ......
  • 中企出海成大热趋势,海外用户如何高效触达
    今年第一季度,美国下载量前五的APP中首次有四个来自中国公司!其中前三名由中国出海APP包揽,按顺序是Temu(拼多多海外版)、Capcut(剪映海外版)和TikTok(抖音海外版)。从全球最大的移动应用市场——中国市场“卷出来”之后,出海企业们欣喜地发现,原来海外是easy模式。有钱、有人、不卷,中企扬帆出......