标签:htm 输出 main ret 维数 dom style ack string
利用goquery读取html中指定ID的数据保存至二维数组中。
代码如下:
1 package main
2
3 import (
4 "fmt"
5 "log"
6 "strings"
7 "io"
8
9 "github.com/PuerkitoBio/goquery"
10 )
11
12 func main() {
13 html := `
14
15
"mydata">
16 "one">
17 one |
18 two |
19 three |
20
21 "two">
22 3 |
23 4 |
24 5 |
25
26 "three">
27 八 |
28 九 |
29 十 |
30
31 "four">
32 百 |
33 千 |
34 万 |
35
36 "five">
37 100 |
38 200 |
39 300 |
40
41
42
43
44 `
45
46 var table [][]string = GetHtmlTableData(strings.NewReader(html),
"#mydata")
47
48 fmt.Println(table)
49
50 for trkey,tr :=
range table {
51 for tdkey, _ :=
range tr{
52 fmt.Println(table[trkey][tdkey])
53 }
54 }
55 }
56
57 func GetHtmlTableData(html io.Reader, tableId string) (table [][]string) {
58 var tableCache [][]string
59
60 dom,err:=
goquery.NewDocumentFromReader(html)
61 if err !=
nil{
62 log.Fatalln(err)
63 }
64
65 trNum := dom.Find(
"table"+tableId).Find(
"tr").Length()
66 tdNum := dom.Find(
"table"+tableId).Find(
"tr").Find(
"td").Length()
67
68 tableCache =
make([][]string, trNum, trNum)
69 for i:=0; i
{
70 tableCache[i] = make([]string, tdNum/trNum, tdNum/trNum)
71 for j:=0; j {
72 tableCache[i][j] = dom.Find(tableId).Find("tr").Find("td").Eq(i*(tdNum/trNum)+j).Text()
73 }
74 }
75
76 return tableCache
77 }
输出结果如下:
Golang读取HTML中Table数据到二维数组
标签:htm 输出 main ret 维数 dom style ack string
原文地址:https://www.cnblogs.com/merrynuts/p/13130204.html