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语言程序设计有所帮助。
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语