Сайт, к которому вы пытаетесь получить доступ, находится за CDN Akamai:
$ 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 предлагает своим клиентам обнаружение веб-клиентов, которые не являются браузерами, чтобы клиенты могли скрывать ботов или замедлять их.
Как видно из Странная проблема CURL с определенным сертификатом SSL для веб-сайта и Попытки очистки с ошибкой 403 Этот тип обнаружения в основном заботится о наличии заголовка Accept-Language
, имеющего заголовок Connection
со значением Keep-Alive
и User-Agent
, который соответствует Mozilla/...
.
Это означает, что следующие изменения кода приведут к немедленному ответу:
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, может измениться без предварительного уведомления, т. Е. Даже если этот код устраняет проблему сейчас, он может больше не работать в будущем. Такие изменения будут особенно актуальны, если многие клиенты обходят обнаружение ботов.