今天要實作勝率的功能,首先先從爬蟲,也是從官網取得,先試一隊,現在爬下來的數據還不是最後使用的,可能還需要做更多的處理。
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的處理,這部份等明天再來詳說。