有没有用过goquery的,我想用代理去爬虫,goquery支持吗?找了一下好像没找到

有没有用过goquery的,我想用代理去爬虫,goquery支持吗?找了一下好像没找到

已邀请:

huhuyou2 - fish

赞同来自: ddxx11223

用代理去爬虫?没看懂啥意思,如果我没理解错的话是下面这样吧

    proxy, _ := url.Parse("http://x.x.x.x:8080")

    tr := &http.Transport{
        Proxy:           http.ProxyURL(proxy),
        TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
    }

    client := &http.Client{
        Transport: tr,
        Timeout:   time.Second * 5,
    }

    resp, err := client.Get("http://www.qiushibaike.com")
    if err != nil {
        fmt.Println(err)
        return
    }

    doc, err := goquery.NewDocumentFromResponse(resp)
    if err != nil {
        fmt.Println(err)
        return
    }

DilonWu - https://github.com/AceDarkknight

赞同来自: ddxx11223

goquery是一个像jQuery的选择页面元素的库,用代理的话应该是gorequest吧。 gorequest是支持代理的,例子如下:

func VerifyProxyIp(ip string, port int) bool {
    if ip == "" || !IsIp(ip) {
        return false
    }

    if port <= 0 {
        return false
    }

    proxy := "http://" + ip + ":" + strconv.Itoa(port)
    resp, _, errs := gorequest.New().
        Proxy(proxy).
        Get("http://httpbin.org/get").
        Timeout(time.Second * 6).
        End()

    if errs != nil && len(errs) > 0 {
        return false
    }

    if resp.StatusCode != 200 {
        return false
    }

    return true
}

liguoqinjim

赞同来自:

可以用pholcus试试

kgtom

赞同来自:

使用代理,爬某些网站上的数据,然后使用goquery去解析html。goquery非常适合。 @huhuyou2 代码可用 参考:https://github.com/PuerkitoBio/goquery

要回复问题请先登录注册