package main
import (
"fmt"
"log"
"strings"
"github.com/PuerkitoBio/goquery"
)
func goGet() {
var headings, row []string
var rows [][]string
data := `
| Heading 1 | Heading two |
| Data 11 | Data 12 |
| Data 21 | Data 22 |
| Data 31 | Data 32 |
| Data 41 | Data 42 |
Stuff in here
| Heading 21 | Heading 2two |
| Data 211 | Data 212 |
| Data 221 | Data 222 |
| Data 231 | Data 232 |
| Data 241 | Data 242 |
`
doc, err := goquery.NewDocumentFromReader(strings.NewReader(data))
if err != nil {
fmt.Println("No url found")
log.Fatal(err)
}
// Find each table
doc.Find("table").Each(func(index int, tablehtml *goquery.Selection) {
tablehtml.Find("tr").Each(func(indextr int, rowhtml *goquery.Selection) {
rowhtml.Find("th").Each(func(indexth int, tableheading *goquery.Selection) {
headings = append(headings, tableheading.Text())
})
rowhtml.Find("td").Each(func(indexth int, tablecell *goquery.Selection) {
row = append(row, tablecell.Text())
})
rows = append(rows, row)
row = nil
})
})
fmt.Println("####### headings = ", len(headings), headings)
fmt.Println("####### rows = ", len(rows), rows)
}
func main() {
goGet()
}