Python爬取天气数据,并且进行天气预报!

如何用python爬取天气预报,python爬虫爬取天气数据 之后,使用request请求,就可以获取到网页了。用左上角的小框带箭头的标志,如下图,点击网页内容,这个时候网页就会自动在右边显示出你获取网页部分对应的代码。然后,我们浏览Name这部分,找到我们想要爬取的文件,鼠标右键,选择copy,复制下网页的URL。这个网页可以根据你复制的URL,自动生成header和cookie,如下图。由于我们需要的是网页上的一类信息,所以我们需要对获取的地址进行分析,提取。之后我们就要soup和text过滤掉不必要的信息,比如js类语言,排除这类语言对于信息受众阅读的干扰。 阅读详情
分析任意一个城市的天气状况
  • 先分析网页
  • 爬取数据
    • 获取城市ID
    • 获得城市的昨天与今天的气温
    • 城市多音字问题
    • 爬取城市的历史数据(用到正则匹配)并进行数据清洗
  • 天气数据分析绘图
  • 用机器学习进行气温预测
    • 将两部分数据合并成为一个xlsx文件
    • 划分训练集与测试集
    • 数据处理方法:
    • 获取全年每天的平均最高温度
    • 用不同的预测方法进行预测
  • 还可以利用聚类分析分析你爬取的城市数据,有哪些城市可以是可以通过天气的分为相同一类的城市。
  • 导入

先分析网页

因为版权问题不能发出爬取网页的过程,如有需要可以私信我获得数据与方法

1.我们可以找到一个 citySelectData2.js 文件,将这个文件的内容先保存到txt文件中后面对于查找任意一个城市的天气数据有巨大帮助。

2.以北京的历史天气为例

每次改变不同的月份,都会生成新的html文件(后面几条蓝色的文件)我们点开其中一个会发现data中就是我们所需要的天气数据。

3.在看上海的今天与明天的气温
网址为**https://**********/shanghai1d/**每次改变城市都是黄色标记的部分。所以我们可以利用这个使用Pinyin函数来将用户输入的城市名称转变为我们所需要的拼音在连接成一个新的我们所需要的网址。
之所以要保存今天和明天的气温是因为我们要用这个来比较我们预测温度的准确性。

爬取数据

获取城市ID

#### 先获取城市ID
def City_code(city_name):
    f = open("城市代码.txt")
    source = f.read()
    f.close()
    pos = source.find(city_name)
    code = int(source[pos-8:pos][0:5])
    print(code)
    return code

city_name就是用户所输入的城市名称。将其在天气网站中对应的ID找出来才能进行历史温度的爬取。

获得城市的昨天与今天的气温

### 获取城市昨天与今天的气温
def WENDU(code,city_name):
        p = Pinyin()
        pinyin = p.get_pinyin(city_name)
        pinyin = pinyin.replace("-","")
        headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:94.0) Gecko/20100101 Firefox/94.0'}
        ### 昨天的温度
        url1 = "https://********/{0}1d/{1}.htm".format(pinyin,code)
        r1 = requests.get(url1,headers=headers).text
        soup1 = BeautifulSoup(r1,'lxml')
        wendu1 = soup1('span',attrs={"class":"other-yes fl"})
        wendu1_low = int(wendu1[0].text.split(":")[1].split("~")[0])
        wendu1_high = int(wendu1[0].text.split("~")[1].split("°")[0])

        ### 今天的温度
        url2 = "https://*****/{0}2d/{1}.htm".format(pinyin,code)
        r2 = requests.get(url2,headers=headers).text
        soup2 = BeautifulSoup(r2,'lxml')
        wendu2 = soup2('span',attrs={"class":"other-yes fl"})
        wendu2_low = int(wendu2[0].text.split(":")[1].split("~")[0])
        wendu2_high = int(wendu2[0].text.split("~")[1].split("°")[0])
        ##### 输出今天的温度
        wendu2 = wendu2[0].text.split(":")
        print(city_name+"今天的天气情况为:"+str(wendu2[1]))
        ### 将昨天与前天的温度传出
        out =[]
        out.append(wendu1_high)
        out.append(wendu1_low)
        out.append(wendu2_high)
        out.append(wendu2_low)
        return out

爬去昨天和今天的气温为明天的气温预测做数据准备。(我只做了个简单的,可以增加过去的天数去预测明天,后天,或者一个星期的温度,原理都是一样的)使用的是requset,和BeautifulSoup进行爬取的数据。可以自行打印提取的网页信息 感受一下
(1) wendu2 = soup2(‘span’,attrs={“class”:“other-yes fl”})

(2) wendu2_low = int(wendu2[0].text.split(“:”)[1].split(“~”)[0])

(3) wendu2_high = int(wendu2[0].text.split(“~”)[1].split(“°”)[0])
这三步将网页中的最高气温与最低气温给提取出来了。

城市多音字问题

注意我们城市会有多音字的出现比如 六安 (luan)如果使用Pinyin会变成liuan 就会导致错误 可以使用有道翻译 将城市翻译成英文 这样就与天气网站中的拼音保持一致了。

### 
        url = "http://****/translate?smartresult=dict&smartresult=rule"
        ### 翻译城市多音字
        t = str(int(time.time()*1000)) # 当前时间戳
        s = "sr_3(QOHT)L2dx#uuGR@r" # 一段用来加密的字符串
        sign_ = "fanyideskweb" + city_name + t + s

        m = hashlib.md5()  # 根据数据串的内容进行 md5 加密
        m.update((sign_).encode('utf-8'))
           # print(m.hexdigest())
        word_key = {     # key 这个字典为 POST 给有道词典服务器的内容
               'i' :city_name,
               'from':'AUTO',
               'to':'AUTO',
               'smartresult':'dict',
               'client':'fanyideskweb',
               'salt':t,
               'sign':m.hexdigest(),
               'doctype': 'json',
               'version': '2.1',
               'keyfrom': 'fanyi.web',
               'action': 'FY_BY_CLICKBUTTION',
               'typoResult': 'false'
           }
        response = requests.post(url,data = word_key)# 发送请求
        word_result = json.loads(response.text)
        print(word_result["translateResult"][0][0]['tgt'])
        pinyin = word_result["translateResult"][0][0]['tgt']

爬取城市的历史数据(用到正则匹配)并进行数据清洗

因为天气网站的城市历史数据2011-2015年的数据 与2016-至今的数据不是同种规格的。所以我分为了两次爬取,之后在合并成为一个完整的数据。(这里只贴出2011-2015年的数据爬取 后面的数据爬取类似)

def City_data_2011_2015(name,code):
    print("正在爬取"+name+"2011年到2015年的天气数据:")
    ## 正则表达式来匹配数据
    #### .是匹配除了/n之外的任何单个字符 此时为非贪心 只会匹配<td>****</td>里面的元素
    r1 = '<td>(.*?)</td>'
    re1 = re.compile(r1)
    #### 看firefox可知为最高温度
    r2 = '<td style="color:#ff5040;">(.*?)</td>'
    re2 = re.compile(r2)
    #### 看firefox可知为最低温度
    r3 = '<td style="color:#3097fd;" >(.*?)</td>'
    re3 = re.compile(r3)
    ### 网站的url
    ## 存储2011-2015的天气预报
    urls = []
    for j in range(2011,2016):
        url_20__ = ['http://****/Pc/GetHistory?areaInfo%5BareaId%5D={0}' \
                    '&areaInfo%5BareaType%5D=2&date%5Byear%5D={1}&date%5Bmonth%5D={2}'.format(code,j,str(i))for i in range(1,13)]
        for x in range(len(url_20__)):
            urls.append(url_20__[x])

    ### 网站的头
    headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:94.0) Gecko/20100101 Firefox/94.0'}
    datess=[]
    weeks=[]
    wd_hs=[]
    wd_ls=[]
    weathers=[]
    winer=[]
    ## 提取数据
    for url in urls:
        df = requests.get(url,headers = headers).json()['data']
    #正则表达式提取日期
        date = [l.split(' ')[0] for l in re1.findall(df)[::3]]
        for i in range(len(date)):
            datess.append(date[i])
    #星期
        week = [l.split(' ')[1] for l in re1.findall(df)[::3]]
        for i in range(len(week)):
            weeks.append(week[i])
    #最高温度
        wd_h = re2.findall(df)
        for i in range(len(wd_h)):
            wd_hs.append(wd_h[i])
    #最低温度
        wd_w = re3.findall(df)
        for i in range(len(wd_w)):
            if (wd_w[i]=="°"):
                wd_ls.append("0°")
            else:
                wd_ls.append(wd_w[i])
    #天气情况
        wea = re1.findall(df)[1::3]
        for i in range(len(wea)):
            weathers.append(wea[i])
    #风力
        win = re1.findall(df)[2::3]
        for i in range(len(win)):
            winer.append(win[i])
        time.sleep(1)
    datas = pd.DataFrame()
    datas['日期'] = pd.to_datetime(datess)
    datas['星期'] = weeks
    datas['最高气温'] = wd_hs
    datas['最低气温'] = wd_ls
    datas['天气情况'] = weathers
    datas['风力'] = winer

    #提取日期
    datas['日期'] = datas['日期'].map(lambda x:str(x).split(' ')[0])
    #去掉摄氏度
    datas['最高气温'] = datas['最高气温'].map(lambda x:float(x.replace('°','')))
    datas['最低气温'] = datas['最低气温'].map(lambda x:float(x.replace('°','')))
    #计算平均气温
    datas['平均气温'] = (datas['最高气温'] + datas['最低气温'])/2
    datas.to_excel('城市数据信息/{}2011_2015_data_count.xlsx'.format(str(name)),index = None)
    print(name+"2011年到2015年的数据保存成功!")

最后的数据样式是这样的
在这里插入图片描述

平均气温这一栏是为了之后画图给其提供横坐标位置与其他数据进行绘制关系图。

天气数据分析绘图

不把代码一一贴出了出来了展示出图例
空气质量可视化函数

#### 空气质量可视化函数
def KQ(city_name):
    zhfont1 = matplotlib.font_manager.FontProperties(fname="字体/方正仿宋简体.TTF")
    xlsx_file = '城市数据信息/{}2016_2022_data_count.xlsx'.format(city_name)
    datas = pd.read_excel(xlsx_file)
    ### 温度与日期的变化
    plt.figure(figsize=(12,4))    # 设置画布大小
    #绘制折线图
    plt.grid(True) ##增加格点
    plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(5))
    plt.plot(list(datas['日期']),list(datas['空气质量数值']))
    #设置标题
    plt.title('{}空气质量变化趋势'.format(city_name),fontproperties=zhfont1)
    #设置X轴标签
    plt.xlabel('日期',fontproperties=zhfont1)
    #设置Y轴标签
    plt.ylabel('空气质量',fontproperties=zhfont1)
    plt.ylim(0,450,75)
    #选择标签角度
    new_ticks = (0,365,730,1095,1460,1826,2191)
    plt.xticks(new_ticks,rotation = 0)
    plt.savefig("城市可视化图片文件夹/{}空气质量变化趋势".format(city_name),dpi=500,bbox_inches = 'tight')
    sns.lineplot(list(datas['日期']),list(datas['空气质量数值']))
    plt.show()

以上海为例

天气占比变化
在这里插入图片描述

温度与空气质量的关系
在这里插入图片描述

10年来的温度整体变化
在这里插入图片描述

最高温度的变化趋势
在这里插入图片描述

因为数据爬取出来了 所以想画什么样的图可以自行发挥。

爬取的数据
在这里插入图片描述

用机器学习进行气温预测

将两部分数据合并成为一个xlsx文件

划分训练集与测试集

如何预测 我自己的思路是 : == 比如要预测明天的气温,我们把今天的气温,昨天的气温,前天的气温找出来,算出10年来这一天的平均气温,用这些数据来预测明天的温度。

数据处理方法:

### 处理最高温度数据
def HIGHT_CHULISHUJU(city_name):

    xlsx_file1 = "城市数据信息/{}2011_2015_data_count.xlsx".format(city_name) ##2011-2015年
    xlsx_file2 = "城市数据信息/{}2016_2022_data_count.xlsx".format(city_name)  ##2016-2011年
    data1 = pd.read_excel(xlsx_file1)
    data2 = pd.read_excel(xlsx_file2)

    #### 将两个天数数据进行合并
    data_综合日期 = list(data1["日期"])+list(data2["日期"])
    data_综合星期 = list(data1["星期"])+list(data2["星期"])
    data_综合最高气温 = list(data1["最高气温"])+list(data2["最高气温"])

    #### 利用test为跳板 可以获得一个dataframe 然后供给data_test再次进行分割数据
    test = pd.DataFrame()
    test["日期"] = data_综合日期

    ### 获得 2011-2021年的数据的位置 与获取每年这一天的历史平均最高气温
    data_test = pd.DataFrame()
    data_test["年"] = test["日期"].map(lambda x : int(x.split("-")[0]))
    # print(data1["年"])
    data_test["月"] = test["日期"].map(lambda x : int(x.split("-")[1]))
    data_test["日"] = test["日期"].map(lambda x : int(x.split("-")[2]))
    data_test['星期'] = data_综合星期
    data_test['真实温度'] = data_综合最高气温

    avg_tempter={}
    ####获取全年每天的平均最高温度
    ###### 将数据集中的每一天的平均气温写出来
    for i in range(1,13):
        print("...",end="")
        for j in range(1,32):
            sumhea = 0
            log =0
            for k in range(2011,2023):
                date = 0
                for x in range(len(data_test['真实温度'])):
                    if(data_test["年"][x]==k and data_test["日"][x]==j and data_test["月"][x]==i):
                        date=x
                        log = log + 1
                        break
                sumhea = sumhea + data_test['真实温度'][date]
            avg_tempter['{0}-{1}'.format(i,j)]= float(sumhea/log)

    print("\n正在处理成完整的数据集:")
    #### 将获得的历史平均每一天的最高气温数据集保存下来
    aveg = pd.DataFrame()
    aveg["平均温度"] = avg_tempter.values()
    data_index =[]
    for i in avg_tempter.items():
        data_index.append(i[0])
    aveg["日期"] = data_index
    aveg["月"] = aveg["日期"].map(lambda x : int(x.split("-")[0]))
    aveg["日"] = aveg["日期"].map(lambda x : int(x.split("-")[1]))
    aveg.to_excel("城市数据信息/{}历史这一天最高温度平均.xlsx".format(city_name))

    ###### 将历史中的这一天的最高平均温度添加到数据集中进行下一步的预测操作
    avage_tempter=[]
    for i in range(len(data_test['真实温度'])):
        for j in range(len(aveg["平均温度"])):
            if(data_test["月"][i]==aveg["月"][j] and data_test["日"][i]==aveg["日"][j]):
                avage_tempter.append(aveg["平均温度"][j])
    data_test['历史最高平均气温'] = avage_tempter


    #######获取data数据集用于预测 将data return返回
    ##### 获取要用于训练的数据集的范围 可以自己进行设置
    day1=0
    day2=0
    for i in range(len(data_test["年"])):
        if (data_test["年"][i]==2012 and data_test["月"][i]==1 and data_test["日"][i]==1):
            day1 = i

        if (data_test["年"][i]==2022 and data_test["月"][i]==1 and data_test["日"][i]==1):
            day2 = i

    to_day_yesterdat = list(data_test['真实温度'][day1-2:day2-1])
    yesterdat = list(data_test['真实温度'][day1-1:day2])
    ###### 利用data_test为跳板 可以获得一个dataframe 然后供给data 让data可以做为测试集与训练集
    data = pd.DataFrame()
    data["年"]=data_test["年"][day1:day2+1]
    data["月"]=data_test["月"][day1:day2+1]
    data["日"]=data_test["日"][day1:day2+1]
    data['星期'] = data_test["星期"][day1:day2+1]
    data['前天最高温度'] =to_day_yesterdat
    data['昨天最高温度'] =yesterdat
    data['真实最高温度'] =data_test['真实温度'][day1:day2+1]
    data['每年这天的历史平均最高气温'] = data_test['历史最高平均气温'][day1:day2+1]

    print("这是处理好的数据集的格式:")
    print(data)
    return data

样式为:在这里插入图片描述

我选取了2012 -2022 这些年的数据 如果有兴趣 可以 选择全部年份 但要从2011-1-3 因为2号 1号没有前天的数据。

获取全年每天的平均最高温度

 ####获取全年每天的平均最高温度
    ###### 将数据集中的每一天的平均气温写出来
    for i in range(1,13):
        print("...",end="")
        for j in range(1,32):
            sumhea = 0
            log =0
            for k in range(2011,2023):
                date = 0
                for x in range(len(data_test['真实温度'])):
                    if(data_test["年"][x]==k and data_test["日"][x]==j and data_test["月"][x]==i):
                        date=x
                        log = log + 1
                        break
                sumhea = sumhea + data_test['真实温度'][date]
            avg_tempter['{0}-{1}'.format(i,j)]= float(sumhea/log)

获得的数据样式为:
在这里插入图片描述

这些都是这一天最高温度的处理方法,同样的最低温度也同样的处理方法

用不同的预测方法进行预测

不一一列举了,只贴出部分代码

def HIGHT_YUCE(data,city_name,x_test):
    data = data.drop(["星期"],axis=1)
    ### 标签
    labels = np.array(data['真实最高温度'])  ### 训练集的标签
    data = data.drop(['真实最高温度'],axis=1)

    #### 获得要预测的数据
    x_test=HIGHT_INPUTYUCE(city_name,x_test)
    y = np.array(data)  #### 训练集
    ##### 均值归一化处理
    min_max_scaler = MinMaxScaler()
    min_max_scaler.fit(y)
    x = min_max_scaler.transform(y)  #均值化处理
    x_ = min_max_scaler.transform(x_test)  #### 要预测的结果 转化为相同的数据格式
    y=labels  ### 训练标签
    x_train,x_test,y_train,y_test = train_test_split(x,y,test_size = 0.2)

    '''
    数据的读取+均值化+划分
    '''
    #模型结构,采用relu函数为激活函数,输入层为6个属性
    #下面为4层隐含层,每层的神经元个数依次为512,256,256,128
    #输入层对应N个属性
    model = keras.Sequential([
            keras.layers.Dense(512,activation='relu',input_shape=[6]),
            keras.layers.Dense(512,activation='relu'),
            keras.layers.Dense(256,activation='relu'),
            keras.layers.Dense(256,activation='relu'),
            keras.layers.Dense(128,activation="relu"),
            keras.layers.Dense(1)])#最后输出为一个结果,也就是预测的值
    #定义损失函数loss,采用的优化器optimizer为Adam
    model.compile(loss='mean_absolute_error',optimizer='Adam',metrics=['mean_squared_error'])
    #记录并且开始训练模型
    history = model.fit(x_train,y_train,batch_size =128,epochs=1000)#训练1000个批次,每个批次数据量为180
    #### 使用test测试集 进行测试 计算出准确度
    y_o_test = model.predict(x_test)
    y_y_test = []
    for i in range(len(y_o_test)):
        y_y_test.append(y_o_test[i][0])
    r = abs(y_test - y_y_test)
    access1 = len(r[r<2])/len(r)  ### 多层神经网络的准确度  ### 取误差为两度之间

    #输出结果预测
    y_pred=model.predict(x_)
    print('多层神经网络预测结果为:',y_pred)
    ### 画出损失函数
    fig = plt.figure(figsize=(12,4))
    plt.subplot(1,2,1)
    plt.xlabel("Epoch")
    plt.ylabel("Loss")
    plt.title("loss")
    plt.plot(history.history["loss"],c = "r")
    ### 画出验证函数
    plt.subplot(1,2,2)
    plt.title("mean_squared_error")
    plt.xlabel("Epoch")
    plt.ylabel("mean_squared_error")
    plt.plot(history.history["mean_squared_error"],c = "b")
    plt.ylim(0,40,2)
    plt.show()
    fig.savefig("损失函数的图片/{}最高温度预测损失函数变化趋势".format(city_name),dpi=500,bbox_inches = 'tight')


输出结果:
明天最高的气温为19度
在这里插入图片描述

预测的结果为:
在这里插入图片描述

损失函数:
在这里插入图片描述

可以看的出来预测的结果的准确度还是较为精准的。

还可以利用聚类分析分析你爬取的城市数据,有哪些城市可以是可以通过天气的分为相同一类的城市。

可以自己多爬取几个城市尝试一下,代码附上:

def GUANLIAN2(city_name):
    xlsxfile = "城市数据信息/{}2016_2022_data_count.xlsx".format(city_name)
    data = pd.read_excel(xlsxfile)

    data = data.drop("日期",axis = 1)
    data = data.drop("星期",axis = 1)
    data = data.drop("空气质量数值",axis = 1)
    data = data.drop("最高气温",axis = 1)
    data = data.drop("最低气温",axis = 1)
    data = pd.get_dummies(data)

    #### 0-1编码
    labeled = data["平均气温"]
    labeled = labeled.values
    index =[]
    for i in labeled:
        index.append(int(i))
    index.sort()
    mideod_1 = np.percentile(index,50)
    for i in range(len(data["平均气温"])):
        if (data["平均气温"][i]<=mideod_1):
            data["平均气温"][i] = "秋冬"
        else:
            data["平均气温"][i] = "春夏"
    data = pd.get_dummies(data)
    print("处理的数据集的格式为:")
    print(data)
    print("------------------------------------------------")
    c = list(data.columns)
    c0 = 0.5
    s0 = 0.2
    list1=[]
    list2=[]
    list3=[]
    for k in range(len(c)):
        for q in range(len(c)):
            if c[k]!=c[q]:
                c1 = data[c[k]]
                c2 = data[c[q]]
                I1=c1.values==1
                I2=c2.values==1
                t12=np.zeros((len(c1)))
                t1=np.zeros((len(c1)))
                t12[I1&I2]=1
                t1[I1]=1
                sp=sum(t12)/len(c1)
                co=sum(t12)/sum(t1)

                if co>c0 and sp>s0:
                    list1.append(c[k]+"--"+c[q])
                    list2.append(sp)
                    list3.append(co)

    R = {"rule":list1,"support":list2,"confidence":list3}
    R = pd.DataFrame(R)
    print("有关联关系是:")
    print("------------------------------------------------")
    print(R)


关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

点击领取 100%免费

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方优快云官方认证二维码或者点击链接免费领取【保证100%免费】

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/711c5966aa7348dc9340894eea54e99f.png#pic_center在这里插入图片描述

如何用python爬取天气预报,python爬虫爬取天气预报 大家好,小编来为大家解答以下问题,python爬虫爬取天气数据讲解,python爬取天气数据生成窗口,今天让我们一起来看看吧!目的:从天气网站中爬取数据,生成excel表格,里面存储南昌市近十一年的天气情况,并对爬取产生的数据进行数据分析。首先,导入 requests 模块,并调用函数 requests.get(),从天气的网站上面获。其次,使用 pandas.concat().to_excel 函数,将爬取的结果保存到表格中,并。取该函数所需要的各种参数,然后对里面的参数进行相应的赋值。 阅读详情

相关推荐

【python爬虫课程设计】天气预报——分类数据爬取+数据可视化

通过Python网络爬虫爬取天气预报让我们快速获取和分析大量的天气数据,并通过可视化手段展示其特征和规律。140 df['最高气温'] = df['最高气温'].apply(lambda x: ''.join(jieba.cut(x))).str.replace('℃', '').astype(float)13 df['最高气温'] = df['最高气温'].apply(lambda x: ''.join(jieba.cut(x))).str.replace('℃', '').astype(float)

GR001009的博客 2311

Python爬取天气数据,并且进行天气预报(已实现)

利用爬虫爬取天气数据,并且进行数据清理,之后进行模型预测,预测明天气温 还进行了数据图的绘制。

qq_50847752的博客 1万+

用 python 调用和风天气的 api 爬取天气预报数据

和风天气的天气预报,为个人开发者提供免费的天气预报数据。(有访问次数的限制)。 注册开发者账号 第一步,我们需要去注册一个开发者账号: 网址: https://id.heweather.com/login?redirect=https://console.heweather.com/my/service 阅读开发者文档 参考:https://dev.heweather.com/docs/getting-started/get-api-key 然后我们来看调用的示例代码: 没有 python

Enjolras_fuu的博客 3938

Python:爬取天气并设计制作天气预报对话框

考试周突然布置python大作业,本来打算网上找现成的拼接一下,但是要不然相同需求的要掏50块钱,要不然太过专业,一看就不是学生几天之内能完成的。于是打算自己做一个。

m0_68524176的博客 3333

天气数据爬取:使用Python爬取实时天气和未来天气预报

天气信息是我们日常生活中必不可少的一部分,了解实时天气和未来天气预报对我们的出行和活动安排有着重要的影响。随着互联网的发展,天气网站提供了便捷的途径来查询天气信息。本篇博客将带你学习如何使用Python编写一个天气数据爬虫,从天气网站上获取实时天气和未来天气预报。天气数据爬虫是一种自动化获取天气信息的程序。通过模拟人的行为,天气数据爬虫可以自动访问天气网站、解析网页内容并获取实时天气和未来天气预报等信息。在本次实战中,我们将使用Python编写一个简单的天气数据爬虫,从天气网站上获取实时天气和未来天气预报。

2201_76125393的博客 752

DC竞赛 国能日新功率预测题 rank21 解决方案(适合新手)

DataCastle国能日新光伏功率预测 数据异常处 本题在测试集中提供了时间、辐照度、风速、风向、温度、压强、湿度、实发辐照度8个特征,以及标签**实际功率**。 而在训练集中只有前七个特征,无实发辐照度。 策略 在观察了数据之后,我们确定实发辐照度是一个强力特征,于是我们采取了stacking的策略: 1. 第一次训练以实发辐照度为标签,预测 测试集的实发辐照度 2....

yyhhlancelot的博客 7294

python爬取天气预报数据,并实现数据可视化

python爬取天气预报数据,并实现数据可视化

一名在读学生 2万+

Unity事件总线第一篇:为什么你的游戏需要一个事件总线?

本文探讨了游戏开发中常见的跨模块调用导致代码强耦合的问题。通过一个攻击按钮触发角色攻击、怪物掉血和血条更新的案例,分析了直接调用方式带来的维护困难、扩展性差和模块重用性低等弊端。文章提出使用事件总线(Event Bus)作为解决方案,通过发布-订阅模式实现模块解耦。重构后的代码中,各模块只需与事件总线交互,彼此不再直接依赖。这种设计使得新增功能(如音效)无需修改现有代码,大大提高了系统的可维护性和扩展性,同时增强了模块的重用性,完美体现了开闭原则。

qq_46348216的博客 1298

python爬虫之爬取天气预报

在这篇博文,我们练习了利用beautifulsoup爬取了中国天气预报(http://www.weather.com.cn/textFC/gat.shtml),让我们一起学习一下吧~ python爬虫之爬取中国天气预报1.爬取步骤2.获取网页源代码3. 分析天气爬取规律4 保存文件5 完整爬取中国天气预报 1.爬取步骤 1.确认需求和目标url 2.获取网页源代码 (第一页为尝试) 3.分析网页爬取规律 (第一页为尝试,关键) 4.保存到csv文件 ''' 需求: 1.爬取全国所有的城市名称以及对应的气温

Claire_chen_jia的博客 1万+

VTK 9.2.0 在 Windows 10 上编译全记录:从 CMake 配置到 VS2019 项目生成(附 Qt 环境变量避坑点)

本文详细记录了VTK 9.2.0在Windows 10上的编译全过程,从CMake配置到VS2019项目生成,特别强调了Qt环境变量的避坑点。通过实战步骤和调试技巧,帮助开发者顺利完成VTK编译,适用于三维可视化开发。

weixin_30082367的博客 364

狗都能看懂的MAML原理讲解和代码实现

meta-leaning指的是元学习,元学习是深度学习的一个分支,一个好的元模型(meta-learner)应该具备对新的、少量的数据做出快速而准确的学习。通俗的来讲, 对于人来说,给几张橘猫的图片让看一下,再给你几张没见过的英短猫图片,你一定能很快识别出来都是猫。但是对于神经网络来说,并非如此。如果让一个小汽车分类网络去识别不同的大货车,那效果肯定很差。而传统的CNN网络都是输入大量的数据,然后进行分类的学习。但是这样做的问题就是,神经网络的通用性太差了,根本达不到“智能”的标准。而人类的认知系统,可以通

个人学习笔记 6万+

python爬取网页天气预报

python爬取网页天气预报 python版本:3.5 用到的模块: urllib xpinyin bs4.BeautifulSoup 目标:输入城市的中文名,得到该城市的天气 首先,选择一个天气预报的网站:http://www.tianqi.com 该网站可以直接加城市拼音后缀,得到该城市的天气,例如北京:http://www.tianqi.com/beijing.html 用xpinyin模块...

黑喵警长的博客 3983

保姆级避坑指南:在Ubuntu 18.04上搞定速腾Helios雷达驱动与fast-LIO2的完整配置流程

本文提供了一份详细的速腾Helios雷达与fast-LIO2在Ubuntu 18.04上的配置避坑指南,涵盖驱动安装、数据格式转换到建图全流程。特别针对常见编译错误和数据转换问题提供了解决方案,帮助开发者高效完成环境搭建与建图任务。

weixin_27252001的博客 112

使用scrapy框架爬取中国各城市天气预报 实验

使用scrapy框架爬取山东各城市天气预报

LMAO的博客 6748

在 SAP BTP 中为 SAP AI Core 创建 Service Instance 和 Service Key 的完整实战指南

摘要:本文详细介绍了在SAP BTP上创建AI Core服务实例和密钥的关键步骤,这是实现ABAP系统与Gen AI大语言模型集成的核心技术环节。文章通过一个制造业财务问答场景的案例,系统梳理了从前提条件准备、架构理解到具体操作的全过程,重点解析了service instance创建、X.509证书配置等关键节点。特别强调了Extended计划选择、证书格式等易错点,为ABAP开发人员实现Gen AI场景提供了实用指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 270

8、 使用TPM密钥:从理论到实践的全面指南

本文全面介绍了如何使用TPM(可信平台模块)进行密钥管理,涵盖密钥的创建、存储、加载、迁移以及特殊密钥类型的使用。通过详细的操作步骤和代码示例,帮助读者掌握TPM密钥管理技术,确保系统的安全性和可靠性。

weixin_36212459的博客 242

Python爬取天气数据及可视化分析!

天气预报我们每天都会关注,我们可以根据未来的天气增减衣物、安排出行,每天的气温、风速风向、相对湿度、空气质量等成为关注的焦点。本次使用python中requests和BeautifulSoup库对中国天气网当天和未来14天的数据进行爬取,保存为csv文件,之后用matplotlib、numpy、pandas对数据进行可视化处理和分析,得到温湿度度变化曲线、空气质量图、风向雷达图等结果,为获得未来天气信息提供了有效方法。

Python84310366的博客 8866

新凯来嵌入式面经及参考答案

利用编译器预定义宏判断目标架构,如。

大模型大数据攻城狮的专栏 2065

python爬虫,将天气预报可视化

利用python爬虫,爬取天气预报的数据,并进行可视化

一名在读学生 8498

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python 爬取天气预报并进行可视化分析

requests: 用来发送 HTTP 请求,获取网页数据。: 用于解析 HTML 数据,提取网页中的有用信息。matplotlib和pandas: 用于处理数据,并创建漂亮的可视化图表。通过本文,我们学习了如何使用 Python 爬取天气预报数据,并使用matplotlib进行可视化展示。这一过程不仅适用于天气数据的展示,还可以广泛应用于其他数据爬取和分析任务。掌握这些技术,你就可以轻松搭建属于自己的数据分析和展示系统,让信息变得更加直观、生动。

专注AI大模型,软件混淆,授权 3226

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

基于Python爬取福建省莆田市天气预报数据获取与预处理的设计与实现

目 录 @[TOC]1 绪论 @[TOC]1.1 概述 随着科技进步,经济快速发展。在人们日常生活中天气的好坏一直扮演着重要的角色,天气也能影响人们心情,好的天气时,大家的心情会随着太阳的出现而变的更加美好,而阴雨连绵的天气中,各种沉闷的气息扑面而来,天气预报的主要内容是一个地区或城市未来一段时期内的阴晴雨雪、最高最低气温、风向和风力及特殊的灾害性天气。就中国而言,气象台准确预报寒潮、台风、暴雨等自然灾害出现的位置和强度,就可以直接为工农业生产和群众生活服务。随着生产力的发展和科学技术的进步,人类活动范

littleflower9的博客 8838

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

python爬取天气数据

说明:寒假任务是做一个带UI界面的天气预报软件,先上最终结果图。 其中用到的知识有:python网络爬虫、python的xlwt和xlwd库的使用,PyQt5的使用。 这里分享一下完成过程: 制作UI界面前先获取城市天气数据 一.爬取天气数据(有网) 第一步:找到合适的url链接 第二步:用python的urllib2库爬取对应城市的天气数据。 第三步:打印天气数据 有了思路,开始打代码: im...

Henry41132220011的博客 5819
上一篇: python3的语法及入门(近7000字,耐心看包全,看完记得点赞)!
下一篇: 5分钟搞懂 Python 中的 ‘==‘ 和 ‘is‘ ,看这篇就够了
Python_trys
博客等级 码龄2年 4355粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值