func ExampleParse() { s := `<p>Links:</p><ul><li><a href="foo">Foo</a><li><a href="/bar/baz">BarBaz</a></ul>` doc, err := html.Parse(strings.NewReader(s)) if err != nil { log.Fatal(err) } var f func(*html.Node) f = func(n *html.Node) { if n.Type == html.ElementNode && n.Data == "a" { for _, a := range n.Attr { if a.Key == "href" { fmt.Println(a.Val) break } } } for c := n.FirstChild; c != nil; c = c.NextSibling { f(c) } } f(doc) // Output: // foo // /bar/baz }
func fetch() (*html.Node, error) { r, err := http.Get("http://www.leboncoin.fr/colocations/offres/ile_de_france") if err != nil { return nil, err } defer r.Body.Close() contentType := r.Header.Get("Content-Type") reader, err := charset.NewReader(r.Body, contentType) if err != nil { return nil, err } doc, err := html.Parse(reader) if err != nil { return nil, err } return doc, nil }