[Go] Go语言通过http代码抓取网页的代码 →→→→→进入此内容的聊天室

来自 , 2019-08-01, 写在 Go, 查看 131 次.
URL http://www.code666.cn/view/f1ea154c
  1. package main
  2. import (
  3.         "fmt"
  4.         "log"
  5.         "net/http"
  6.         "net/url"
  7.         "io/ioutil"
  8. )
  9. //指定代理ip
  10. func getTransportFieldURL(proxy_addr *string) (transport *http.Transport) {
  11.         url_i := url.URL{}
  12.         url_proxy, _ := url_i.Parse(*proxy_addr)
  13.         transport = &http.Transport{Proxy : http.ProxyURL(url_proxy)}
  14.         return
  15. }
  16. //从环境变量$http_proxy或$HTTP_PROXY中获取HTTP代理地址
  17. func getTransportFromEnvironment() (transport *http.Transport) {
  18.         transport = &http.Transport{Proxy : http.ProxyFromEnvironment}
  19.         return
  20. }
  21.  
  22. func fetch(url , proxy_addr *string) (html string) {
  23.         transport := getTransportFieldURL(proxy_addr)
  24.         client := &http.Client{Transport : transport}
  25.         req, err := http.NewRequest("GET", *url, nil)
  26.         if err != nil {
  27.                 log.Fatal(err.Error())
  28.         }
  29.         resp, err := client.Do(req)
  30.         if err != nil {
  31.                 log.Fatal(err.Error())
  32.         }
  33.         if resp.StatusCode == 200 {
  34.                 robots, err := ioutil.ReadAll(resp.Body);
  35.                 resp.Body.Close()
  36.                 if err != nil {
  37.                         log.Fatal(err.Error())
  38.                 }
  39.                 html = string(robots);
  40.         } else {
  41.                 html = ""
  42.         }
  43.         return
  44. }
  45.  
  46. func main() {
  47.         proxy_addr := "http://183.221.250.137:80/"
  48.         url := "http://www.baidu.com/s?wd=ip"
  49.         html := fetch(&url, &proxy_addr)
  50.         fmt.Println(html)
  51. }
  52.  
  53. //go/7043

回复 "Go语言通过http代码抓取网页的代码"

这儿你可以回复上面这条便签

captcha