golang get запрос возвращает блок javascript кода вместо готовой страницы, как получить данные страницы которую я вижу в браузере?

Я хочу распарсить сайт dns чтобы из кода страницы взять названия, цены и информацию по наличию видеокарт. Чтобы получить данные с других сайтов достаточно было прочитать body с помощью кода ниже и дальше искать конкретные элементы по названиям классов

func main() {
    url := "https://www.dns-shop.ru/catalog/17a89aab16404e77/videokarty/"
    res, err := http.Get(url)
    if err != nil {
        log.Fatal(err)
    }
    defer res.Body.Close()
    if res.StatusCode != 200 {
        log.Fatalf("status code error: %d %s", res.StatusCode, res.Status)
    }
    page, err := io.ReadAll(res.Body)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(string(page))
}

Но запрос к сайту dns возвращает огромный блок js кода

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta http-equiv="refresh" content="10;URL=/ciez2a">
</head>
<body>
  <script type="text/javascript">
function md5cycle(e,t){var i=e[0],a=e[1],r=e[2],n=e[3];a=ii(a=ii(a=ii(a=ii(a=hh(a=hh(a=hh(a=hh(a=gg(a=gg(a=gg(a=gg(a=ff(a=ff(a=ff(a=ff(a,r=ff(r,n=ff(n,i=ff(i,a,r,n,t[0],7,-680876936),a,r,t[1],12,-389564586),i,a,t[2],17,606105819),n,i,t[3],22,-1044525330),r=ff(r,n=ff(n,i=ff(i,a,r,n,t[4],7,-176418897),a,r,t[5],12,1200080426),i,a,t[6],17,-1473231341),n,i,t[7],22,-45705983),r=ff(r,n=ff(n,i=ff(i,a,r,n,t[8],7,1770035416),a,r,t[9],12,-1958414417),i,a,t[10],17,-42063),n,i,t[11],22,-1990404162),r=ff(r,n=ff(n,i=ff(i,a,r,n,t[12],7,1804603682),a,r,t[13],12,-40341101),i,a,t[14],17,-1502002290),n,i,t[15],22,1236535329),r=gg(r,n=gg(n,i=gg(i,a,r,n,t[1],5,-16
...
ing.call(t))return void this.key.generateAsync(this.default_key_size,this.default_public_exponent,t);this.key.generate(this.default_key_size,this.default_public_exponent)}return this.key},t.prototype.getPrivateKey=function(){return this.getKey().getPrivateKey()},t.prototype.getPrivateKeyB64=function(){return this.getKey().getPrivateBaseKeyB64()},t.prototype.getPublicKey=function(){return this.getKey().getPublicKey()},t.prototype.getPublicKeyB64=function(){return this.getKey().getPublicBaseKeyB64()},t.version="3.0.0-rc.1",t}();window.JSEncrypt=rt,t.JSEncrypt=rt,t.default=rt,Object.defineProperty(t,"__esModule",{value:!0})});

var ipp = {
        decrypt:function()
        {
                var decrypt = new JSEncrypt();
                decrypt.setPrivateKey("MIICXQIBAAKBgQDTOb2dXV6rcQ9QVTYlb1PYtB3Ej7XYwSxqrHtVr1GTeG+oLSBcZaDHril6uR2ND7fNLu6XGB2KnUZcBsMJ5k+srHIsRdxvfZs71tIHUUvWEJ8e1AjkGEsRUJCg1NvRojb5eGBtj0NI/KKEJS1L3PW6JVHPI4mZbfFtYCBiluLGVQIDAQABAoGBAKtCqMP73XNiEwmOXX2Su0f8Ghqybr3VOn8vZDzADoNkZhvUouVnnSnpw0X268fg06UwhVDKw8EM7exVqzPOog+j1My3IbCN84QOAcufXiL0vJtBJwvdg2zdGGbkUSqoxSfc4QK+ZNlIkwvmVexl3IG6Lw9Y3w0p5U4QDKCU4sHtAkEA/F9BHMoaOXzhYlqdybX2a++vJEMn+qBTmkWD/3bfQoM6KCrLbyWzG2wgaF7FP5VY60Mxpw4ypL+69bG3DSd0nwJBANZDEH0TllJayXeuPCpAq5871bLQ1bW2mbsRBndXm0iwTyk9TNXLWSjnUZKkjNmVjOCAUOTsfivkj3Tg7x+hDIsCQGHcef407GhgYXFnHApssep23d5c4DLSWrjWvfGg4cAD7NhIh+xInSREEGkIXspiGkHYI3fZDJBP/KprSEUkiJcCQQDRqycDfptnU7g7CaGOp2JKnD7ukTXQcDPXvz1Yo74tT3rnnDkILcm+IT7OBYBfm90UA/0lR9fgE/XeJg9aIDspAkAdor7dPqOlAekSlNjR9tBlt+3aQ5ZWqXhr2cpG2Hz8gkliovxRXGSWO44PtfLUOM9yowmjDZShK56012HtTLKv");
                return decrypt.decrypt("BJS2VgyyigNnBFJeKecAlv9WZRPFCUihcOYm8we5Qb9L3CZuy1XwcZNE9Ap2laIPwsoiZlMtdvI92VNxytf2U9Ep4BsZ5ppjoE72N8o43M3wdWyuyaSGwICEP1b9hKK53zsJ6aufx3DNGpnGJz+D7O2z1Pibe4COV+d7pyxcpRA=");
        },
        setCookie:function()
        {
                document.cookie="ipp_key=" + this.decrypt() + "; Path=/";
                document.cookie="ipp_uid=1662458869169/Oi8lOQG6Pa4ALSEI/dTwjZVFABwKPLhXxnytKWw==; Expires=Tue, 31 Dec 2030 23:59:59 GMT; Path=/";
        },
        makeUrl:function(url)
        {
                url += "fa821dba_ipp_key=v1662458869169_v33947245b95ade7a72e273_cRsjQNT83ENJ89KKil406g=" + this.decrypt() + "&" + "fa821dba_ipp_uid=1662458869169_Oi8lOQG6Pa4ALSEI_dTwjZVFABwKPLhXxnytKWw";
                return url;
        }
};


    (new Fingerprint2).get(function(e,t){
      salt="1313324565";
      document.cookie="ipp_sign="+e+"_"+salt+"_"+md5(e+salt)+"; expires=Tue, 31 Dec 2030 23:59:59 GMT; path=/;";
      ipp.setCookie();
      window.location.href = "https://www.dns-shop.ru/catalog/17a89aab16404e77/videokarty/" + window.location.hash;
    })
  </script>
</body>
</html>

Насколько я понимаю, сервер возвращает мне не саму страничку, а код из которой генерируется эта страница. Из этого кода я не могу получить нужную мне информацию.

Как мне получить уже сгенерированную html страницу для парсинга? Есть ли какой то другой способ узнать информацию которую я пытаюсь распарсить?


Ответы (0 шт):