使用Golang从HowLongToBeat获取HTML内容
使用Golang从HowLongToBeat获取HTML内容 我正在向 howlongtobeat 网站发送请求,但没有收到 HTML 响应,只收到了表单数据值。
同样的请求在 Postman 中运行完美。
func HowLongToBeat() {
form := url.Values{}
form.Add("queryString", "doom")
form.Add("t", "games")
form.Add("sorthead", "popular")
form.Add("sortd", "Normal Order")
form.Add("plat", "")
form.Add("length_type", "main")
form.Add("length_min", "")
form.Add("length_max", "")
form.Add("detail", "0")
form.Add("v", "")
form.Add("f", "")
form.Add("g", "")
form.Add("randomize", "0")
req, err := http.NewRequest("POST", "https://howlongtobeat.com/search_results?page=1", strings.NewReader(form.Encode()))
req.Header.Add("Content-type", "application/x-www-form-urlencoded")
req.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36")
req.Header.Add("Accept", "*/*")
req.Header.Add("origin", "https://howlongtobeat.com")
req.Header.Add("referer", "https://howlongtobeat.com")
if err != nil {
//handle postform error
fmt.Println(err)
}
defer req.Body.Close()
body, err := ioutil.ReadAll(req.Body)
if err != nil {
//handle read response error
fmt.Println(err)
}
fmt.Println(string(body))
//this prints (detail=0&f=&g=&length_max=&length_min=&length_type=main&plat=&queryString=doom&randomize=0&sortd=Normal+Order&sorthead=popular&t=games&v=)
}
更多关于使用Golang从HowLongToBeat获取HTML内容的实战教程也可以访问 https://www.itying.com/category-94-b0.html
3 回复
你好 @illud 要控制HTTP客户端头部、重定向策略以及其他设置,请创建一个Client:
client := &http.Client{
CheckRedirect: redirectPolicyFunc,
}
resp, err := client.Get("http://example.com")
// ...
req, err := http.NewRequest("GET", "http://example.com", nil)
// ...
req.Header.Add("If-None-Match", `W/"wyzzy"`)
resp, err := client.Do(req)
// ...
http package - net/http - Go Packages
Package http provides HTTP client and server implementations.


