Files
flashscore/main.xgo
2026-07-21 03:49:47 +03:00

125 lines
2.4 KiB
Plaintext
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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го тайма
*/