爬取天氣數據,利用Pyecharts作輪播圖

?

爬取網站鏈接:https://lishi.tianqi.com/xiamen/202312.html

爬取了廈門市2023年一整年的天氣數據,包括最高溫,最低溫,天氣,風力風向等?

爬蟲代碼:

import requests
import pandas as pd
import csv
from pyecharts.charts import Bar,Timeline
import pyecharts.options as opts
import parself = open('天氣數據.csv',mode='w',encoding='utf-8',newline='')
csv_writer = csv.DictWriter(f,fieldnames=['日期','星期','最高溫','最低溫','天氣','風向','風力'])
csv_writer.writeheader()
cookies = {'cityPy': 'xiamen','cityPy_expire': '1721098187','UserId': '17204933865319972','Hm_lvt_ab6a683aa97a52202eab5b3a9042a8d2': '1720493387','HMACCOUNT': '4A9167DA75AB7059','Hm_lpvt_ab6a683aa97a52202eab5b3a9042a8d2': '1720493402','Hm_lvt_7c50c7060f1f743bccf8c150a646e90a': '1720493523','Hm_lvt_30606b57e40fddacb2c26d2b789efbcb': '1720493529','Hm_lpvt_30606b57e40fddacb2c26d2b789efbcb': '1720493529','Hm_lpvt_7c50c7060f1f743bccf8c150a646e90a': '1720493646',
}headers = {'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7','accept-language': 'zh-CN,zh;q=0.9','cache-control': 'no-cache',# 'cookie': 'cityPy=xiamen; cityPy_expire=1721098187; UserId=17204933865319972; Hm_lvt_ab6a683aa97a52202eab5b3a9042a8d2=1720493387; HMACCOUNT=4A9167DA75AB7059; Hm_lpvt_ab6a683aa97a52202eab5b3a9042a8d2=1720493402; Hm_lvt_7c50c7060f1f743bccf8c150a646e90a=1720493523; Hm_lvt_30606b57e40fddacb2c26d2b789efbcb=1720493529; Hm_lpvt_30606b57e40fddacb2c26d2b789efbcb=1720493529; Hm_lpvt_7c50c7060f1f743bccf8c150a646e90a=1720493646','pragma': 'no-cache','priority': 'u=0, i','referer': 'https://lishi.tianqi.com/xiamen/202302.html','sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"','sec-fetch-dest': 'document','sec-fetch-mode': 'navigate','sec-fetch-site': 'same-origin','sec-fetch-user': '?1','upgrade-insecure-requests': '1','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
}
for i in range(1,13):if i < 10:i = '0'+str(i)url = f'https://lishi.tianqi.com/xiamen/2023{i}.html'response = requests.get(url=url, cookies=cookies, headers=headers)response.encoding=response.apparent_encodinghtml = response.textselector = parsel.Selector(html)li_list = selector.css('div.tian_three ul.thrui li')for li in li_list:date_time = li.css('div.th200::text').get().split(' ')[0]xingqi_time = li.css('div.th200::text').get().split(' ')[1]all_list = li.css('div.th140::text').getall()max_temp = all_list[0]min_temp = all_list[1]weather = all_list[2]wind_orient = all_list[3].split(' ')[0]wind_rank = all_list[3].split(' ')[1]dit = {'日期': date_time,'星期': xingqi_time,'最高溫': max_temp,'最低溫': min_temp,'天氣': weather,'風向': wind_orient,'風力': wind_rank,}csv_writer.writerow(dit)print(date_time,xingqi_time,max_temp,min_temp,weather,wind_orient,wind_rank)

保存到csv文件:

?

接下來讀取文件,對文件格式做調整,以進行繪圖操作。?

df = pd.read_csv('天氣數據.csv')
print(df.info())
df['日期'] = pd.to_datetime(df['日期'])
df['month_'] = df['日期'].dt.to_period('M')
new_data = df.groupby(['month_','天氣']).size().reset_index()
new_data.columns = ['month','weather','count'] #改變列名
print(df.head)
print(new_data)
print(new_data[new_data['month']=='2023-01'][['weather','count']].sort_values(by='count',ascending=False).values.tolist())  # 條件篩選,獲取一月份的天氣和數量值,獲取的是數據框格式
#.sort_values(by='count',ascending=False).values.tolist() 這段代碼是按升序排序,獲取值并轉變為雙列表格式
# [['多云', 14], ['小雨', 5], ['晴', 5], ['霧', 4], ['陰', 2], ['中雨', 1]]

new_data數據格式如下:?

?

現在進行繪圖操作:

# 實例化一個時間序列的對象
timeline = Timeline()
timeline.add_schema(play_interval=1000)  #單位是毫秒
for month in new_data['month'].unique():data = (new_data[new_data['month'] == month][['weather', 'count']].sort_values(by='count',ascending=False).values.tolist())print(data)bar = (Bar().add_xaxis([x[0] for x in data]).add_yaxis('',[x[1] for x in data]).reversal_axis()  #坐標軸倒轉.set_global_opts(title_opts=opts.TitleOpts(title='廈門市2023年每月天氣變化')).set_series_opts(label_opts=opts.LabelOpts(position='right')))timeline.add(bar,f'{month}')timeline.render('天氣輪播圖.html')

?

點擊輪播圖下方的按鈕就可以進行播放了。?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44148.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44148.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44148.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

UML建模案例分析-時序圖和類圖的對應關系

概念 簡單地說&#xff0c;類圖定義了系統中的對象&#xff0c;時序圖定義了對象之間的交互。 例子 一個電子商務系統&#xff0c;會員可通過電子商務系統購買零件。具體功能需求如下&#xff1a; 會員請求結賬時&#xff0c;系統驗證會員的賬戶是否處于登錄狀態&#xff1…

極狐GitLab 17.0 重磅發布,100+ DevSecOps功能更新來啦~【三】

GitLab 是一個全球知名的一體化 DevOps 平臺&#xff0c;很多人都通過私有化部署 GitLab 來進行源代碼托管。極狐GitLab &#xff1a;https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中國的發行版&#xff0c;專門為中國程序員服務。可以一鍵式部署…

【基礎篇】1.8 C語言基礎(二)

2.9 預處理指令和宏定義 在STM32開發中,預處理和宏定義常用于配置硬件參數、啟用或禁用特定功能、以及優化代碼以適應不同的硬件配置或應用場景。通過合理地使用預處理和宏定義,我們可以編寫更加靈活、可配置和高效的代碼。 預處理指令如#include、#define等在C語言編程中起…

防火墻圖形化界面策略和用戶認證(華為)

目錄 策略概要認證概要實驗拓撲圖題目要求一要求二要求三要求四要求五要求六 策略概要 安全策略概要&#xff1a; 安全策略&#xff08;Security Policy&#xff09;在安全領域具有雙重含義。宏觀上&#xff0c;安全策略指的是一個組織為保證其信息安全而建立的一套安全需求、…

uniapp 微信小程序接入MQTT

MQTT安裝 前期準備 由于微信小程序需要wss&#xff0c;所以要有域名SSL證書 新建目錄/srv/mosquitto/config&#xff0c;/srv/mosquitto/config/cert 目錄/srv/mosquitto/config中新建配置文件mosquitto.conf&#xff0c;文件內容 persistence true persistence_location /m…

深入探索Apache Flink:流處理的藝術與實踐

在當今的大數據時代&#xff0c;流處理已成為處理實時數據的關鍵技術。Apache Flink&#xff0c;作為一個開源的流處理框架&#xff0c;以其高吞吐量、低延遲和精確一次&#xff08;exactly-once&#xff09;的語義處理能力&#xff0c;在眾多流處理框架中脫穎而出。本文將深入…

在樹莓派設備上導出系統鏡像

鏡像導出 前提條件&#xff1a; 已獲取可以正常使用的設備。已獲取鼠標、鍵盤和電源適配器。已將設備接入可正常使用的網絡。 操作步驟&#xff1a; 連接適配器給設備上電&#xff0c;正常啟動設備&#xff0c;連接鼠標和鍵盤。在終端命令窗格執行如下命令&#xff0c;安裝…

數據模型-ER圖在數據模型設計中的應用

ER圖在數據模型設計中的應用 1. ER圖概述&#xff1a;起源與發展? 實體-關系圖&#xff08;Entity Relationship Diagram&#xff0c;簡稱ER圖&#xff09;起源于1970年代&#xff0c;由Peter Chen首次提出&#xff0c;作為描述數據和信息間關系的圖形化語言。隨著數據庫技術…

[PM]流程與結構設計

流程圖 流程就是為了達到特定目標, 進行的一系列有邏輯性的操作步驟, 由兩個及已上的步驟, 完成一個完整的行為過程, 即可稱為流程, 流程圖就是對這個過程的圖形化展示 分類 業務流程圖 概念: 描述業務流程的一種圖, 通過特定符號和連線表示具體某個業務的處理步驟和過程作…

MyBatis與JDBC相比,有哪些優勢

MyBatis與JDBC&#xff08;Java Database Connectivity&#xff09;相比&#xff0c;在多個方面展現出顯著的優勢。這些優勢使得MyBatis在現代軟件開發中成為一個非常受歡迎的選擇&#xff0c;特別是在處理數據庫交互時。以下是MyBatis相比JDBC的主要優勢&#xff1a; 1. 簡化…

極狐GitLab亮相世界人工智能大會,開啟開源大模型賦能軟件研發新時代

GitLab 是一個全球知名的一體化 DevOps 平臺&#xff0c;很多人都通過私有化部署 GitLab 來進行源代碼托管。極狐GitLab &#xff1a;https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中國的發行版&#xff0c;專門為中國程序員服務。可以一鍵式部署…

285個地級市-胡煥庸線數據

全國285個地級市-胡煥庸線數據.zip資源-CSDN文庫 胡煥庸線&#xff1a;中國人口與生態的分界線 胡煥庸線&#xff0c;一條在中國地理學界具有劃時代意義的分界線&#xff0c;由著名地理學家胡煥庸于1935年提出。這條線從黑龍江省的璦琿&#xff08;現黑河市&#xff09;延伸至…

json-server總結

Json-server 是一個專門用于模擬 RESTful API 的工具&#xff0c;它允許前端開發人員在不依賴后端 API 的情況下進行開發&#xff0c;通過本地搭建一個 JSON 服務來快速生成 REST API 風格的后端服務。 一、主要特點與功能 快速搭建&#xff1a;Json-server 使用 JSON 文件作…

HippoRAG如何從大腦獲取線索以改進LLM檢索

知識存儲和檢索正在成為大型語言模型(LLM)應用的重要組成部分。雖然檢索增強生成(RAG)在該領域取得了巨大進步&#xff0c;但一些局限性仍然沒有克服。 俄亥俄州立大學和斯坦福大學的研究團隊推出了HippoRAG&#xff0c;這是一種創新性的檢索框架&#xff0c;其設計理念源于人類…

數學建模美賽論文文檔

目錄 1. 摘要&#xff1a;1.1 閱讀并理解題目1.2 背景介紹1.3 問題提出 2. 目錄&#xff1a;2.1 引言&#xff08;Introduction&#xff09;2.2 假設與合理性說明&#xff08;Assumptions and Justifications&#xff09;2.3 符號說明&#xff08;Notations&#xff09;2.4 模型…

2.Date類型的請求參數

前端 <el-form-item label"結束日期" prop"endTime"><el-date-pickerv-model"dataForm.endTime"type"date"value-format"yyyy-MM-dd HH:mm:ss"placeholder"選擇日期"></el-date-picker></el…

線下線上游戲電競陪伴APP小程序H5同城線下約玩APP開發,語聊約玩平臺搭建游戲陪玩APP源碼

開發一款線下陪玩約玩APP的實際意義和在生活中的應用場景 1、滿足社交需求:現代社會人們的社交圈往往受到時間、地點和其他限制的影響。線下陪玩約玩APP可以提供一個平臺&#xff0c;讓用戶通過約玩的方式結識新朋友、擴大社交圈 2、解決孤獨感:有些人由于工作忙碌、居住環境單…

論文閱讀2-《Dynamic Multimodal Fusion》

摘要 &#xff08;DynMM&#xff09;&#xff0c;一種新的方法&#xff0c;自適應融合多模態數據和 d在推理過程中生成依賴于數據的前向路徑。為此&#xff0c;我們提出了一種門控功能來提供基于多模態特征和一個的模態級或融合級決策提高計算效率的源感知損失函數。 細節 模…

185240-00G 同軸連接器

型號簡介 185240-00G是Southwest Microwave的2.92 mm連接器。該連接器采用鈹銅合金、工具鋼和不銹鋼等優質材料&#xff0c;并經過金鍍層和鈍化處理&#xff0c;確保其穩定可靠&#xff0c;經久耐用。它還兼容歐盟 RoHS 和 WEEE 指令&#xff0c;是一位環保使者&#xff0c;致力…

AI繪畫Midjourney從入門到實戰應用

大家好&#xff0c;我是愛編程的喵喵。雙985碩士畢業&#xff0c;現擔任全棧工程師一職&#xff0c;熱衷于將數據思維應用到工作與生活中。從事機器學習以及相關的前后端開發工作。曾在阿里云、科大訊飛、CCF等比賽獲得多次Top名次。現為CSDN博客專家、人工智能領域優質創作者。…