scraping done

This commit is contained in:
mykola2312 2025-08-23 13:06:52 +03:00
parent 1c4885317a
commit a82e78fdc7

18
main.go
View file

@ -9,6 +9,7 @@ import (
"net/http" "net/http"
"os" "os"
"os/exec" "os/exec"
"regexp"
"strings" "strings"
"golang.org/x/net/html" "golang.org/x/net/html"
@ -87,8 +88,6 @@ func (mpv *MPV) InquirePlayback() (float32, error) {
return res.Data, nil return res.Data, nil
} }
const PARSE_JSON_OFFSET = 25
func ParseWebMedia(url string) (string, error) { func ParseWebMedia(url string) (string, error) {
res, err := http.Get(url) res, err := http.Get(url)
if err != nil { if err != nil {
@ -122,13 +121,22 @@ func ParseWebMedia(url string) (string, error) {
for _, script := range scripts { for _, script := range scripts {
if strings.Contains(script, "var streamChannels") { if strings.Contains(script, "var streamChannels") {
streamChannels = script streamChannels = script
break
} }
} }
if streamChannels == "" { if streamChannels == "" {
return "", fmt.Errorf("failed to find streamChannels") return "", fmt.Errorf("failed to find streamChannels")
} }
return streamChannels[25:], err re := regexp.MustCompile(`url:.*'(.*)'`)
if match := re.FindAllStringSubmatch(streamChannels, 1); match != nil {
fmt.Println(match)
return match[0][1], nil
} else {
return "", fmt.Errorf("regex failed")
}
} }
var testUrl string var testUrl string
@ -148,6 +156,6 @@ func main() {
// fmt.Println(err) // fmt.Println(err)
// } // }
json, _ := ParseWebMedia(testUrl) stream, err := ParseWebMedia(testUrl)
fmt.Println(json) fmt.Println(stream, err)
} }