This commit is contained in:
2026-07-21 03:49:47 +03:00
commit e8a0b2ba42
65 changed files with 40163 additions and 0 deletions

124
main.xgo Executable file
View File

@@ -0,0 +1,124 @@
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го тайма
*/