125 lines
2.4 KiB
Plaintext
Executable File
125 lines
2.4 KiB
Plaintext
Executable File
package flashscore
|
||
|
||
import (
|
||
"fmt"
|
||
//"io/ioutil"
|
||
//webspider "spider"
|
||
//"strconv"
|
||
//"strings"
|
||
//"time"
|
||
"bytes"
|
||
|
||
"github.com/PuerkitoBio/goquery"
|
||
|
||
//"github.com/kr/pretty"
|
||
//"html"
|
||
"flashscore/model"
|
||
)
|
||
|
||
//var (
|
||
// spider *webspider.Spider
|
||
//)
|
||
|
||
/*
|
||
err = ioutil.WriteFile("fixtures-unescaped", []byte(content), 0666)
|
||
if err != nil {
|
||
return
|
||
}
|
||
*/
|
||
|
||
var trsrc = `<html>
|
||
<body>
|
||
<table>
|
||
<tr class="odd highlight" onclick="cjs.Api.loader.get('cjs').call(function(_cjs){_cjs.fromGlobalScope.detail_open('g_0_z7bKeorA', null, false); });">
|
||
<td>
|
||
<span class="date">1583784000</span>
|
||
</td>
|
||
<td class="flag_td " title="Premier League (England)">
|
||
<span class="flag fl_198"></span>PL]
|
||
</td>
|
||
<td class="name">
|
||
<span><strong>Leicester</strong></span>
|
||
</td>
|
||
<td class="name highTeam">
|
||
<span>Aston Villa</span>
|
||
</td>
|
||
<td class="">
|
||
<span class="score"><strong>4 : 0</strong></span>
|
||
</td>
|
||
<td class="winLose">
|
||
<a title="Loss" class="wld wld--l">L</a>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</body>
|
||
</html>`
|
||
|
||
func testParseTr(src string) (err error) {
|
||
doc, err := goquery.NewDocumentFromReader(bytes.NewBuffer([]byte(src)))
|
||
if err != nil {
|
||
return
|
||
}
|
||
/*
|
||
txt, err := doc.Html()
|
||
if err != nil {
|
||
return
|
||
}
|
||
|
||
fmt.Printf("%s\n", txt)
|
||
|
||
|
||
trs := doc.Find("tr")
|
||
|
||
fmt.Printf("trs: %d\n", trs.Length())
|
||
*/
|
||
trs := doc.Find(".highlight")
|
||
for trIdx := range trs.Nodes {
|
||
var m model.TeamMatch
|
||
//fmt.Printf("trIdx: %d\n", trIdx)
|
||
|
||
m, err = parseMatchResultTr(trs.Eq(trIdx))
|
||
if err != nil {
|
||
err = fmt.Errorf("parseTr: %s", err)
|
||
return
|
||
}
|
||
|
||
fmt.Printf("%v\n", m)
|
||
fmt.Println()
|
||
}
|
||
return
|
||
}
|
||
|
||
/*
|
||
|
||
*/
|
||
// cut
|
||
/*
|
||
txt, err := first.Html()
|
||
if err != nil {
|
||
return
|
||
}
|
||
|
||
err = ioutil.WriteFile("temp", []byte(html.UnescapeString(txt)), 0666)
|
||
if err != nil {
|
||
return
|
||
}
|
||
*/
|
||
// end cut
|
||
//n := first.Get(0)
|
||
|
||
//fmt.Printf("node: %#v\n\n", txt)
|
||
|
||
/*
|
||
|
||
Всё. Я написал. Парсит следующие страницы:
|
||
|
||
https://www.flashscore.com/football/england/premier-league/fixtures/ - расписание матчей
|
||
|
||
https://www.flashscore.com/match/lUKXoAEo/#h2h;overall - H2H (все 3 вкладки: overall, home, away)
|
||
|
||
https://www.flashscore.com/match/lUKXoAEo/#odds-comparison;1x2-odds;full-time - коэфф. на FullTime 1 x 2 (плюс определяет букмекеров)
|
||
|
||
https://www.flashscore.com/match/Sv4qwtWD/#match-summary - из отчета по матчу достает только счет 1го и 2го тайма
|
||
|
||
*/
|