首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Golang获取请求非常慢

Golang获取请求非常慢
EN

Stack Overflow用户
提问于 2019-01-25 10:29:20
回答 2查看 4K关注 0票数 5

对于Golang中的一个简单的HTTP请求,我有一个非常奇怪的问题。

戈朗对https://www.alltron.ch/json/searchSuggestion?searchTerm=notebook的每一个请求大约需要6-8秒(!)

如果在Chrome、邮递员或Powershell中触发相同的请求,则所需时间不到一秒钟。

有人知道为什么会发生这种事吗?

我的守则:

代码语言:javascript
运行
复制
package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("GET", "https://www.alltron.ch/json/searchSuggestion?searchTerm=notebook", nil)

    response, err := client.Do(req)
    if err != nil && response == nil {
        log.Fatalf("Error on request. %v", err)
    }
    defer response.Body.Close()

    body, err := ioutil.ReadAll(response.Body)
    if err != nil {
        log.Fatalf("Couldn't get response body. %v", err)
    }

    fmt.Print(string(body))
}
EN

回答 2

Stack Overflow用户

发布于 2019-01-25 19:38:55

您要访问的站点位于Akamai CDN后面:

代码语言:javascript
运行
复制
$ dig www.alltron.ch 
...
www.alltron.ch.         152     IN      CNAME   competec.botmanager.edgekey.net.
competec.botmanager.edgekey.net. 7052 IN CNAME  e9179.f.akamaiedge.net.
e9179.f.akamaiedge.net. 162     IN      A       2.20.176.40

Akamai为其客户提供了一个网络客户端的检测,而这些客户端不是浏览器,这样客户就可以让机器人远离或减慢机器人的速度。

Strange CURL issue with a particular website SSL certificateScraping attempts getting 403 error中可以看出,这种检测主要关注的是有一个Accept-Language头、一个带有值Keep-AliveConnection头以及一个与Mozilla/...匹配的User-Agent

这意味着以下代码更改将导致立即响应:

代码语言:javascript
运行
复制
req, _ := http.NewRequest("GET", "https://www.alltron.ch/json/searchSuggestion?searchTerm=notebook", nil)
req.Header.Set("Connection","Keep-Alive")
req.Header.Set("Accept-Language","en-US")
req.Header.Set("User-Agent","Mozilla/5.0")

尽管如此,该网站显然不喜欢机器人,你应该坚持这些愿望,不要过分强调网站(比如做大量的信息抓取)。而且,Akamai所做的机器人检测可能会在没有通知的情况下发生变化,也就是说,即使这段代码解决了问题,现在它可能在将来不再起作用了。如果许多客户端绕过bot检测,这种更改将特别正确。

票数 10
EN

Stack Overflow用户

发布于 2019-01-25 12:15:33

尝试在你的铬中禁用高速缓存,并将其与戈朗进行比较。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54363393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档