package main import ( "net/http" "golang.org/x/net/html" ) func findTitle(n *html.Node) string { if n.Type == html.ElementNode && n.Data == "title" { if c := n.FirstChild; n != nil { return c.Data } } for c := n.FirstChild; c != nil; c = c.NextSibling { if s := findTitle(c); s != "" { return s } } return "" } func FetchTitle(url string) (string, error) { resp, err := http.Get(url) if err != nil { return "", err } defer resp.Body.Close() doc, err := html.Parse(resp.Body) if err != nil { return "", err } return findTitle(doc), nil }