首页 > 编程语言 > 详细

golang语言Pk10网站源码搭建爬虫代理的代码示例

时间:2019-06-21 13:35:21      阅读:277      评论:0      收藏:0      [点我收藏+]

package main

Pk10网站源码搭建Q【115288oo99】

import (
"net/url"
"net/http"
"bytes"
"fmt"
"io/ioutil"
"math/rand"
"time"
"strconv"
)

const ProxyServer = "t.16yun.cn:31111"

type ProxyAuth struct {
Username string
Password string
}

func (p ProxyAuth) ProxyClient() http.Client {
if p.Username != nil and p.Password != nil{
proxyURL, _ := url.Parse("http://" + p.Username + ":" + p.Password + "@" + ProxyServer)
}else{
proxyURL, _ := url.Parse("http://" + ProxyServer)
}
return http.Client{Transport: &http.Transport{Proxy:http.ProxyURL(proxyURL)}}
}

func main() {
targetURI := "http://httpbin.org/ip"

// 初始化 proxy http client
client := ProxyAuth{License: "username", SecretKey: "password"}.ProxyClient()

request, _ := http.NewRequest("GET", targetURI, bytes.NewBuffer([] byte(``)))

// 设置Proxy-Tunnel
// rand.Seed(time.Now().UnixNano())
// tunnel := rand.Intn(10000)
// request.Header.Set("Proxy-Tunnel", strconv.Itoa(tunnel) )

response, err := client.Do(request)

if err != nil {
panic("failed to connect: " + err.Error())
} else {
bodyByte, err := ioutil.ReadAll(response.Body)
if err != nil {
fmt.Println("读取 Body 时出错", err)
return
}
response.Body.Close()

body := string(bodyByte)

fmt.Println("Response Status:", response.Status)
fmt.Println("Response Header:", response.Header)
fmt.Println("Response Body:\n", body)
}
}

golang语言Pk10网站源码搭建爬虫代理的代码示例

原文:https://www.cnblogs.com/zaibianhaokan/p/11063528.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!