package main import ( "fmt" "log" "strings" "github.com/PuerkitoBio/goquery" ) func goGet() { var headings, row []string var rows [][]string data := `
Heading 1Heading two
Data 11Data 12
Data 21Data 22
Data 31Data 32
Data 41Data 42

Stuff in here

Heading 21Heading 2two
Data 211Data 212
Data 221Data 222
Data 231Data 232
Data 241Data 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() }