iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 1
0
自我挑戰組

從爬蟲到架站系列 第 18

Day 17: 從爬蟲到架站-隊伍勝率

  • 分享至 

  • xImage
  •  

今天要實作勝率的功能,首先先從爬蟲,也是從官網取得,先試一隊,現在爬下來的數據還不是最後使用的,可能還需要做更多的處理。

import datetime
url = "http://www.cpbl.com.tw/web/team_dayscore.php?&team=E02"
req = requests.get(url)
soup = BeautifulSoup(req.text, 'lxml')

td = soup.select('td')
win_list = []
date_list = []
for i in range(len(td)//9):
    if td[i*9 + 8].text.strip() == "中信兄弟":
        win_list.append(1)
    else:
        win_list.append(0)
    date = td[i*9 + 2].text.split('-')        
    date_list.append(datetime.datetime(int(date[0]),int(date[1]),int(date[2])))

win = 0
total = 0
win_percetage = []
for i in win_list:
    win = win + i
    total = total + 1
    win_percetage.append(win/total)

爬蟲算是非常好爬,並且取得了勝率的list,接著就去echarts官網試試看。

先上成果

在這個圖中,與之前不同的是x軸必須要是時間,所以前置動作會比較多一點,官網也有比較複雜的範例

先上設置項

option = {
    tooltip: {
        trigger: 'axis',
        formatter: function (params) {
            params = params[0];
            var date = new Date(params.name);
            return date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear() + ' : ' + params.value[1];
        },
        axisPointer: {
            animation: false
        }
    },
    xAxis: {
        type: 'time',
        splitLine: {
            show: false
        }
    },
    yAxis: {
        type: 'value',
        splitLine: {
            show: false
        }
    },
    series: [{
        data: data,
        type: 'line'
    }]
};

最重要的部分就是data的處理,這部份等明天再來詳說。


上一篇
Day 16: 從爬蟲到架站-年度數據實作
下一篇
Day 18: 從爬蟲到架站-隊伍勝率圖
系列文
從爬蟲到架站21
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言