使用go语言的版本是1.0.3,golang那个goquery模块需要使用的exp/html死活装不上,后来装上了code.google.com/p/go.net/html,goquery使用还是出错,可能就是exp/html模块版本不对吧,
反正后来找到的exp/html不是那个pkg的位置,以下是go语言获取网页链接的源码:
安装code.google.com/p/go.net/html: go get code.google.com/p/go.net/html
如果说连接time out, 就在机器的hosts文件加上: 74.125.128.138 code.google.com
package main import ( "fmt" "log" "strings" "time" "net/http" "io/ioutil" "code.google.com/p/go.net/html" ) func getwangye(url string) string { for h:=1;h<4;h++{ r, err := http.Get(url) if err != nil { fmt.Printf("%v\n", err) time.Sleep(time.Second * 4) continue } defer r.Body.Close() body, err:= ioutil.ReadAll(r.Body) return string(body) } return "nonono" } func getlink(s string) []string{ var b []string doc, err := html.Parse(strings.NewReader(s)) if err != nil { log.Fatal(err) } var f func(*html.Node) f = func(n *html.Node) { if n.Type == html.ElementNode && n.Data == "a" { for _, a := range n.Attr { if a.Key == "href" { //fmt.Println(a.Val) b=append(b,a.Val) break } } } for c := n.FirstChild; c != nil; c = c.NextSibling { f(c) } } f(doc) // Output: // foo // /bar/baz return b } func main() { s := getwangye("https://www.lpfrx.com") d:=getlink(s) cc:=len(d) for h:=1;h<cc;h++{ fmt.Println(d[h]) //break } }
还是那句,go语言的中文资料貌似很少,搞这个go语言获取网页连接,另我头痛了很久呢
在树莓派下的linux环境和windows 7 64位环境通过,还有的就是,原来pkg可以复制过去就可以用了,
因为windows 7下使用: go get code.google.com/p/go.net/html, 要装很多东西,我在linux环境下把它复制到windows去就可以用了.