Golang读取HTML中Table数据到二维数组

2021-05-13 12:27

阅读:421

标签: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"> 1718192021"two"> 2223242526"three"> 2728293031"four"> 3233343536"five"> 3738394041
one two three
3 4 5
100 200 300
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

上一篇:c++ 重载运算符

下一篇:C++ 返回const对象


评论


亲,登录后才可以留言!