Wpis z mikrobloga

Chciałbym dla każdej litery ze słownika: pl.wiktionary.org znaleźć linka do następnej strony. Robię to w ten sposób:

b := bytes.NewReader(body) //body []byte
scan := bufio.NewScanner(b)
for scan.Scan() {
text = scan.Text()
if strings.Contains(text, "następna strona") {
fmt.Println(text)
}
}

body to zmienna przekazywana z innej funkcji

g, err := http.Get(url)
if err != nil {
fmt.Println(err)
} else {
defer g.Body.Close()
body, err := io.ReadAll(g.Body)

Dla strony z literą np. "a" znajduje mi innego linka niż powinien być
- znajduje mi tego linka: /w/index.php?title=Kategoria:polski(indeks)&pagefrom=Abid%C5%BCan&subcatfrom=a&filefrom=a#mw-pages
- w źródle strony jest: /w/index.php?title=Kategoria:polski
(indeks)&pagefrom=Abid%C5%BCan&subcatfrom=a&filefrom=a#mw-pages
Czy php jakoś generuje/zmienia te linki?
#golang
  • 2
@Codix:

import (
"fmt"
"html"
)

func main() {
encoded := "/w/index.php?title=Kategoria:polski(indeks)&pagefrom=Abid%C5%BCan&subcatfrom=a&filefrom=a#mw-pages"
decoded := html.UnescapeString(encoded)
expected := "/w/index.php?title=Kategoria:polski(indeks)&pagefrom=Abid%C5%BCan&subcatfrom=a&filefrom=a#mw-pages"
fmt.Println(decoded == expected)
}

https://go.dev/play/p/j1vbgF02yaz
https://developer.mozilla.org/en-US/docs/Glossary/Entity