黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

自古逢秋悲寂寥,奈何今秋熱成雕?Python使用Pyecharts統(tǒng)計(jì)全國(guó)溫度

系統(tǒng) 2514 0

秋詞—?jiǎng)⒂礤a

自古逢秋悲寂寥,
我言秋日勝春朝。
晴空一鶴排云上,
便引詩(shī)情到碧霄。

古人談及秋天,都是悲涼寂寥,那么….我好想回到古代的秋天??!明明到了秋天,為什么最近的氣溫比夏天還熱。
之前做天氣預(yù)報(bào)自動(dòng)推送小工具的時(shí)候,爬過(guò)中國(guó)天氣網(wǎng)?

http://www.weather.com.cn/forecast/,今天就再盤(pán)它一次,來(lái)看看全國(guó)天氣吧
首先進(jìn)入中國(guó)天氣網(wǎng),有一個(gè)國(guó)內(nèi)天氣預(yù)報(bào)的欄目:

如上圖所示,網(wǎng)站將中國(guó)分為:
華為、東北、華南、西北、西南、華東、華中,西安屬于西北,進(jìn)去看看:

網(wǎng)站有一個(gè)設(shè)置,只要過(guò)了當(dāng)天的6點(diǎn),那么當(dāng)天的白天溫度就清空了…所以我們就來(lái)看看,明天全國(guó)天氣Top10吧!

看到這溫度,我就想說(shuō),三伏天的溫度也不過(guò)如此吧….
咱們來(lái)分析下這張圖,每個(gè)省的第一個(gè)城市都是省會(huì)城市,省內(nèi)的溫度差別不大,那我們就把全國(guó)每個(gè)省會(huì)城市的溫度進(jìn)行比較吧,至于港澳臺(tái)…暫且不分析。

網(wǎng)站分析

網(wǎng)站html分析

每日天氣


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

  • 各省天氣


    每個(gè)省份的數(shù)據(jù)都包過(guò)在這個(gè)div中,只要findAll即可

  • 省會(huì)城市

    表格中的前兩個(gè)tr應(yīng)該用th做標(biāo)題的,所以從第三個(gè)tr就是省會(huì)城市的溫度信息了

  • 數(shù)據(jù)獲取
    省會(huì)城市名稱、最高溫度、最低溫度 分別在1、4、7的td中,findALL后,這么規(guī)律的排序直接使用列表切片[1:8:3]即可獲取

數(shù)據(jù)匯總分析

剛才分析了西北地區(qū)的數(shù)據(jù)獲取,然后再看看西南。
西北地域的數(shù)據(jù)url為:
http://www.weather.com.cn/textFC/xb.shtml
再看看西南地域的url:
http://www.weather.com.cn/textFC/xn.shtml
簡(jiǎn)直不要太歡樂(lè),url只有最后的地域拼音頭不一樣,可以開(kāi)啟for循環(huán)模式了!
遍歷7個(gè)地域,然后獲取每個(gè)地域下的省會(huì)城市,最終保存到一個(gè)列表中,樣式大致如下

數(shù)據(jù)展示

數(shù)據(jù)趴好了,返回一串?dāng)?shù)組?這怎么符合處女座追求完美的行事風(fēng)格!
python繪圖的模塊很多,多數(shù)人都用 Matplotlib ,但是…

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

所以不一樣的我使用pyecharts….
今天用pyecharts繪圖,讓大家看看python集成echarts后的繪圖效果如何。

代碼實(shí)現(xiàn)

模塊準(zhǔn)備

如果你是首次使用爬蟲(chóng)和echarts繪圖,需要關(guān)注一下模塊的安裝:

            
              pip install requests
install beautifulsoup4
pip install lxml # bs4的解析依賴庫(kù)
pip install pyecharts
            
          

關(guān)于pyecharts的更新

網(wǎng)上鋪天蓋地的 pycharts 都是來(lái)回轉(zhuǎn)來(lái)轉(zhuǎn)去的0.3.x、0.5.x的版本
pyecharts 19年4月份已經(jīng)更新到1.1.0了,其中不管是模塊導(dǎo)入還是插件的使用,變更都比較大。
所以網(wǎng)上的那列介紹,如果是python3.6+你就別看了,不適合你,連代碼引入都會(huì)報(bào)錯(cuò)。
有人說(shuō)可以指定舊版本啊,可既然出了新版本,你又何必杠精的去學(xué)習(xí)舊的版本?
看看pyecharts的github:https://github.com/pyecharts/pyechart

網(wǎng)站底部有專門(mén)的中、英文文檔,喜歡的朋友可以去仔細(xì)瞧瞧…

代碼實(shí)現(xiàn)

            
              # -*- coding: utf-8 -*-
# @Author   : 王翔
# @JianShu  : 清風(fēng)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


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": "省會(huì)城市溫度Top10 清風(fēng)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()

            
          

代碼執(zhí)行完成后,會(huì)生成一個(gè) TempComparison.html 的文件

效果展示:

The End

OK,今天的內(nèi)容就到這里,如果覺(jué)得內(nèi)容對(duì)你有所幫助,歡迎點(diǎn)擊文章右下角的“ 在看 ”。
期待你關(guān)注我的公眾號(hào) 清風(fēng)Python ,如果覺(jué)得不錯(cuò),希望能動(dòng)動(dòng)手指轉(zhuǎn)發(fā)給你身邊的朋友們。

作者: 清風(fēng)Python


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論