soup
soup is a Go library for parsing and querying HTML documents.
It provides a simple and intuitive interface for extracting information from HTML pages. It's inspired by popular Python web scraping
library BeautifulSoup and shares similar use API implementing functions like Find and FindAll.
soup can also use go's built-in http client to download HTML content.
Note that unlike beautifulsoup, soup does not support CSS selectors or XPath.
Example Use
```go package main
import ( "fmt" "log"
"github.com/anaskhan96/soup" )
func main() {
url := "https://www.bing.com/search?q=weather+Toronto"
# soup has basic HTTP client though it's not recommended for scraping: resp, err := soup.Get(url) if err != nil { log.Fatal(err) }
# create soup object from HTML doc := soup.HTMLParse(resp)
# html elements can be found using Find or FindStrict methods: # in this case find
# elements can be further searched for descendents: heading := grid.Find("div", "class", "wtr_titleCtrn").Find("div").Text() conditions := grid.Find("div", "class", "wtr_condition") primaryCondition := conditions.Find("div") secondaryCondition := primaryCondition.FindNextElementSibling() temp := primaryCondition.Find("div", "class", "wtr_condiTemp").Find("div").Text() others := primaryCondition.Find("div", "class", "wtr_condiAttribs").FindAll("div") caption := secondaryCondition.Find("div").Text()
fmt.Println("City Name : " + heading) fmt.Println("Temperature : " + temp + "˚C") for _, i := range others { fmt.Println(i.Text()) } fmt.Println(caption) } ```