【发布时间】:2019-05-02 03:34:19
【问题描述】:
我正在尝试使用从 free-proxy-list.net 获得的代理来抓取一些站点,并使用 Golang 将其应用到我的本地 http 请求中,但是当我使用 url.Parse() 解析代理时总是返回 Invalid控制字符网址
func getProxy() *url.URL {
proxyUrl := "https://www.proxy-list.download/api/v1/get?type=http&country=US"
client := &http.Client{}
req, err := http.NewRequest("GET", proxyUrl, nil)
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error proxy ", err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("Error response body", err)
}
details := string(body)
temp := strings.Split(details, "\n")
fmt.Println("http://" + temp[rand.Intn(30)])
checkProxy, err := url.Parse("http://" + temp[rand.Intn(10)])
if err != nil {
fmt.Println("Bad proxy URL", err)
}
return checkProxy
}
【问题讨论】:
-
这意味着 URL 无效。就是这么简单。
-
@Volker,但是当我手动尝试示例“104.129.11.35:3128”时,它可以工作,但是当我尝试从 strings.split 获取值时,它总是返回无效的控制字符 URL