Esempio n. 1
0
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
}
Esempio n. 2
0
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
}