Go语言通过http抓取网页的方法
本文实例讲述了Go语言通过http抓取网页的方法。分享给大家供大家参考。具体实现方法如下:
packagemain import( "fmt" "log" "net/http" "net/url" "io/ioutil" ) //指定代理ip funcgetTransportFieldURL(proxy_addr*string)(transport*http.Transport){ url_i:=url.URL{} url_proxy,_:=url_i.Parse(*proxy_addr) transport=&http.Transport{Proxy:http.ProxyURL(url_proxy)} return } //从环境变量$http_proxy或$HTTP_PROXY中获取HTTP代理地址 funcgetTransportFromEnvironment()(transport*http.Transport){ transport=&http.Transport{Proxy:http.ProxyFromEnvironment} return } funcfetch(url,proxy_addr*string)(htmlstring){ transport:=getTransportFieldURL(proxy_addr) client:=&http.Client{Transport:transport} req,err:=http.NewRequest("GET",*url,nil) iferr!=nil{ log.Fatal(err.Error()) } resp,err:=client.Do(req) iferr!=nil{ log.Fatal(err.Error()) } ifresp.StatusCode==200{ robots,err:=ioutil.ReadAll(resp.Body); resp.Body.Close() iferr!=nil{ log.Fatal(err.Error()) } html=string(robots); }else{ html="" } return } funcmain(){ proxy_addr:="http://183.221.250.137:80/" url:="http://www.baidu.com/s?wd=ip" html:=fetch(&url,&proxy_addr) fmt.Println(html) }
希望本文所述对大家的Go语言程序设计有所帮助。