新闻  |   论坛  |   博客  |   在线研讨会
如何验证爬虫代理IP
laical | 2020-09-02 17:25:48    阅读:68   发布文章

随着互联网的发展,网络爬虫的进步,大家也越来越多的人了解到了HTTP代理。HTTP代理IP对于网络爬虫用户是不可缺少的一部分。虽然HTTP代理有很多种用法,但是还是有许多人不太清楚HTTP代理。网络爬虫都清楚,访问一个网站久了,IP会被限制。大家都是很都会想着靠HTTP代理去解决问题。这时候我们都会搞清楚这个代理IP是否可用,那如何去验证?这时候就需要搭建IP池去验证或者自己做一个网站链接去验证。

GO爬虫代码验证方式:

        package main        import (            "net/url"            "net/http"            "bytes"            "fmt"            "io/ioutil"        )        // 代理服务器(产品官网 www.16yun.cn)        const ProxyServer = "t.16yun.cn:31111"        type ProxyAuth struct {            Username string            Password string        }        func (p ProxyAuth) ProxyClient() http.Client {            var proxyURL *url.URL            if p.Username != ""&& p.Password!="" {                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 := "https://httpbin.org/ip"            // 初始化 proxy http client            client := ProxyAuth{"username",  "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)            }        }

通过以上方式可以验证自己的代理信息是否可用。正常有效的可用代理ip返回的应该是响应码200

如果是自己搭建IP池,自己做IP池管理的爬虫,需要做IP存活检测的,可以访问http://current.ip.16yun.cn:802这个网站,专门做IP存活检测。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客