...
1 package goquery_test
2
3 import (
4 "fmt"
5 "log"
6 "net/http"
7 "os"
8 "strings"
9
10 "github.com/PuerkitoBio/goquery"
11 )
12
13
14 func Example() {
15
16 res, err := http.Get("http://metalsucks.net")
17 if err != nil {
18 log.Fatal(err)
19 }
20 defer res.Body.Close()
21 if res.StatusCode != 200 {
22 log.Fatalf("status code error: %d %s", res.StatusCode, res.Status)
23 }
24
25
26 doc, err := goquery.NewDocumentFromReader(res.Body)
27 if err != nil {
28 log.Fatal(err)
29 }
30
31
32 doc.Find(".sidebar-reviews article .content-block").Each(func(i int, s *goquery.Selection) {
33
34 band := s.Find("a").Text()
35 title := s.Find("i").Text()
36 fmt.Printf("Review %d: %s - %s\n", i, band, title)
37 })
38
39
40
41
42
43 }
44
45
46 func ExampleNewDocumentFromReader_file() {
47
48 f, err := os.Open("some/file.html")
49 if err != nil {
50 log.Fatal(err)
51 }
52 defer f.Close()
53 doc, err := goquery.NewDocumentFromReader(f)
54 if err != nil {
55 log.Fatal(err)
56 }
57
58 _ = doc.Find("h1")
59 }
60
61
62 func ExampleNewDocumentFromReader_string() {
63
64 data := `
65 <html>
66 <head>
67 <title>My document</title>
68 </head>
69 <body>
70 <h1>Header</h1>
71 </body>
72 </html>`
73
74 doc, err := goquery.NewDocumentFromReader(strings.NewReader(data))
75 if err != nil {
76 log.Fatal(err)
77 }
78 header := doc.Find("h1").Text()
79 fmt.Println(header)
80
81
82 }
83
84 func ExampleSingle() {
85 html := `
86 <html>
87 <body>
88 <div>1</div>
89 <div>2</div>
90 <div>3</div>
91 </body>
92 </html>
93 `
94 doc, err := goquery.NewDocumentFromReader(strings.NewReader(html))
95 if err != nil {
96 log.Fatal(err)
97 }
98
99
100 multiSel := doc.Find("div")
101 fmt.Println(multiSel.Text())
102
103
104 singleSel := doc.FindMatcher(goquery.Single("div"))
105 fmt.Println(singleSel.Text())
106
107
108
109
110 }
111
View as plain text