Python使用Pyecharts統計全國溫度Top10并繪圖

      網友投稿 1105 2022-05-29

      古人談及秋天,都是悲涼寂寥,那么….我好想回到古代的秋天??!明明到了秋天,為什么最近的氣溫比夏天還熱。

      之前做天氣預報自動推送小工具的時候,爬過中國天氣網 (閱讀往期文章)

      http://www.weather.com.cn/forecast/,今天就再盤它一次,來看看全國天氣吧

      首先進入中國天氣網,有一個國內天氣預報的欄目:

      如上圖所示,網站將中國分為:

      華為、東北、華南、西北、西南、華東、華中,西安屬于西北,進去看看:

      網站有一個設置,只要過了當天的6點,那么當天的白天溫度就清空了…所以我們就來看看,明天全國天氣Top10吧!

      看到這溫度,我就想說,三伏天的溫度也不過如此吧….

      咱們來分析下這張圖,每個省的第一個城市都是省會城市,省內的溫度差別不大,那我們就把全國每個省會城市的溫度進行比較吧,至于港澳臺…我選擇直接忽視。

      網站html分析

      每日天氣

      conMidtab一共有7個,后6個添加了隱藏樣式style="display:none;",是后6天的天氣預報,既然咱們看的是明天天氣,就選擇第二個吧…

      各省天氣

      每個省份的數據都包過在這個div中,只要findAll即可

      省會城市

      表格中的前兩個tr應該用th做標題的,所以從第三個tr就是省會城市的溫度信息了

      數據獲取

      省會城市名稱、最高溫度、最低溫度 分別在1、4、7的td中,findALL后,這么規律的排序直接使用列表切片[1:8:3]即可獲取

      數據匯總分析

      剛才分析了西北地區的數據獲取,然后再看看西南。

      西北地域的數據url為:

      http://www.weather.com.cn/textFC/xb.shtml

      再看看西南地域的url:

      http://www.weather.com.cn/textFC/xn.shtml

      簡直不要太歡樂,url只有最后的地域拼音頭不一樣,可以開啟for循環模式了!

      遍歷7個地域,然后獲取每個地域下的省會城市,最終保存到一個列表中,樣式大致如下

      數據展示

      數據趴好了,返回一串數組?這怎么符合處女座追求完美的行事風格!

      python繪圖的模塊很多,多數人都用Matplotlib,但是…

      渣男錫紙燙,渣女大 波浪,而我不一樣,積極又向上。

      所以不一樣的我使用pyecharts….

      今天用pyecharts繪圖,讓大家看看python集成echarts后的繪圖效果如何。

      模塊準備

      如果你是首次使用爬蟲和echarts繪圖,需要關注一下模塊的安裝:

      關于pyecharts的更新

      網上鋪天蓋地的pycharts都是來回轉來轉去的0.3.x、0.5.x的版本

      pyecharts 19年4月份已經更新到1.1.0了,其中不管是模塊導入還是插件的使用,變更都比較大。

      所以網上的那列介紹,如果是python3.6+你就別看了,不適合你,連代碼引入都會報錯。

      有人說可以指定舊版本啊,可既然出了新版本,你又何必杠精的去學習舊的版本?

      看看pyecharts的github:https://github.com/pyecharts/pyechart

      網站底部有專門的中、英文文檔,喜歡的朋友可以去仔細瞧瞧…

      代碼實現

      # -*- coding: utf-8 -*-

      # @Author ? : 王翔

      # @JianShu ?: 清風Python

      # @Date ? ? : 2019/8/15 21:39

      # @Software : PyCharm

      # @version ?:Python 3.7.3

      # @File ? ? : TempComparison.py

      import requests

      from bs4 import BeautifulSoup

      from pyecharts.charts import Line

      import datetime

      Python使用Pyecharts統計全國溫度Top10并繪圖

      class TempComparison:

      def __init__(self):

      self.cityInfoList = []

      def get_request(self):

      areas_list = ['hb', 'db', 'hd', 'hz', 'hn', 'xb', 'xn']

      headers = {

      'User-Agent': 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) '

      'AppleWebKit/537.36 (KHTML, like Gecko) '

      'Chrome/70.0.3538.67 Safari/537.36',

      'Referer': 'http://www.weather.com.cn/textFC/xn.shtml'

      }

      for area in areas_list:

      req = requests.get("http://www.weather.com.cn/textFC/%s.shtml" % area,

      headers=headers)

      content = req.content.decode('utf-8')

      soup = BeautifulSoup(content, 'lxml')

      for line in soup.findAll('div', {'class': 'conMidtab'})[1].findAll('div', {'class': 'conMidtab2'}):

      td_list = line.findAll('tr')[2].findAll('td')[1:8:3]

      self.cityInfoList.append(list(map(lambda x: x.text.strip(), td_list)))

      print(self.cityInfoList)

      def filter_result(self):

      top_city_info = sorted(self.cityInfoList, key=lambda x: x[1], reverse=True)[:10]

      city, high_temp, low_temp = list(zip(*top_city_info))

      now = datetime.datetime.now()

      tommorrow = (now + datetime.timedelta(days=1)).strftime("%Y-%m-%d")

      charts_bar = (

      Line()

      .set_global_opts(

      title_opts={"text": "省會城市溫度Top10 清風Python",

      "subtext": tommorrow})

      .add_xaxis(city)

      .add_yaxis("高溫", high_temp, color='#C3322D') ?# is_symbol_show=True, is_smooth=True,

      .add_yaxis("低溫", low_temp, color='#399EFF')

      )

      charts_bar.render('TempComparison.html')

      if __name__ == '__main__':

      main = TempComparison()

      main.get_request()

      main.filter_result()

      代碼執行完成后,會生成一個TempComparison.html的文件

      效果展示:

      歡迎大家關注“清風Python”公眾號

      本文來自“清風Python”

      python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:鯤鵬kc1源碼方式安裝基因測序軟件PennCNV
      下一篇:進程通信 重定向
      相關文章
      亚洲精品无码高潮喷水A片软| 久久亚洲中文字幕精品有坂深雪| 久久亚洲AV无码精品色午夜麻豆| 亚洲高清专区日韩精品| 亚洲一区二区三区自拍公司| 久久久久亚洲爆乳少妇无| 亚洲精品综合久久| 亚洲男人在线无码视频| 亚洲区小说区图片区| 亚洲午夜国产片在线观看| 亚洲午夜精品久久久久久浪潮| 亚洲不卡无码av中文字幕| 无码天堂亚洲国产AV| 亚洲高清国产拍精品青青草原 | 自拍偷自拍亚洲精品偷一| 男人的天堂av亚洲一区2区| 亚洲成av人片在线天堂无| 亚洲精品无码mⅴ在线观看| 亚洲国产精品成人午夜在线观看| 亚洲午夜理论片在线观看| 亚洲精品无码不卡在线播放| 亚洲国产一区二区三区在线观看| 天堂亚洲国产中文在线| 亚洲国产精品ⅴa在线观看| 亚洲A∨精品一区二区三区| 亚洲午夜av影院| 亚洲精品~无码抽插| 亚洲午夜久久久精品影院| 亚洲高清不卡视频| 亚洲色欲色欲www| 亚洲综合无码无在线观看| 亚洲av无码日韩av无码网站冲| 国产亚洲视频在线观看| 国产成人精品久久亚洲高清不卡| 亚洲第一黄色网址| 伊人亚洲综合青草青草久热| 亚洲AV无码成人专区片在线观看| 久久久久亚洲av无码专区喷水 | 在线亚洲精品福利网址导航| 久久亚洲精品视频| 久久亚洲AV无码精品色午夜|