Golang爬虫基础:通过代理IP发送请求

package main

import (
        "fmt"
        "io/ioutil"
        "log"
        "net/http"
        "net/url"
)

func main() {
        req_url := "http://httpbin.org/get"
        fmt.Printf("url: %s", req_url)

        proxy := func(_ *http.Request) (*url.URL, error) {
                return url.Parse("http://12.23.16.11:1234")
        }
        transport := &http.Transport{Proxy: proxy}

        c := &http.Client{Transport: transport}

        req, err := http.NewRequest("GET", req_url, nil)
        if err != nil {
                log.Fatal(err)
        }

        res, err := c.Do(req)
        if err != nil {
                log.Fatal(err)
        }

        defer res.Body.Close()
        body, err := ioutil.ReadAll(res.Body)
        if err != nil {
                log.Fatal(err)
        }

        fmt.Printf("%s", body)
}

运行结果:

url: http://httpbin.org/get{
  "args": {},
  "headers": {
    "Accept-Encoding": "gzip",
    "Connection": "close",
    "Host": "httpbin.org",
    "User-Agent": "Go-http-client/1.1"
  },
  "origin": "12.23.16.11",
  "url": "http://httpbin.org/get"
}

你可能感兴趣的:(爬虫,Go语言,golang,爬虫)