1
我写了一个代理,问题是,在网站上 一些环节没有如谷歌计划:URL,而不方案抛出错误
<a class="ab_dropdownlnk" href="//www.google.com/support/websearch/?source=g&hl=en">
我通过Client.Do获取网址()
如何解决在Go这样的网址?
我写了一个代理,问题是,在网站上 一些环节没有如谷歌计划:URL,而不方案抛出错误
<a class="ab_dropdownlnk" href="//www.google.com/support/websearch/?source=g&hl=en">
我通过Client.Do获取网址()
如何解决在Go这样的网址?
如果没有方案,则使用合理的默认值。例如,
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
"net/url"
)
func main() {
href := "//www.google.com/support/websearch/?source=g&hl=en"
url, err := url.Parse(href)
if err != nil {
log.Fatal(err)
}
if url.Scheme == "" {
url.Scheme = "http"
}
req, err := http.NewRequest("GET", url.String(), nil)
if err != nil {
log.Fatal(err)
}
client := http.Client{}
res, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
websearch, err := ioutil.ReadAll(res.Body)
res.Body.Close()
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", websearch)
}
丢失的方案让浏览器选择协议,是非常方便的,其同时提供 http和https网站。然后浏览器根据他如何进入页面选择使用哪种协议。 您可以使用https或http作为默认设置,或者像浏览器一样使用,并选择您用于 获取页面的协议。
例如,这样的事情:
for _, parsedLink := range parsedLinks {
parsedLink.Scheme = requestUrl.Scheme
}