Задать вопрос
@Maksimg0lubev

Возможно ли получить JSON с сервера защищённого от парсинга сайта?

Приветствую!

В данный момент я делаю парсер для сайта и использую Selenium на Python, а также JS, но так как скорость Selenium - а в рамках текущего проекта не столь высока, то приходится исследовать запросы и ответы в Networking -> XHR.

Я заметил один get запрос, при выполнении которого сайт получает json со всеми нужными данными.
Но когда это делаю уже я через requests.get(), то не получаю таких же данных (JSON), которые получает сайт.
Насколько я понимаю, это защита от парсинга.
Если это действительно защита от парсинга, то как можно получить JSON с сервера?

Вместо ожидаемого JSON получаю такой ответ с JS кодом md5 хэширования:

<!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
var ipp = {
  decrypt:function()
  {
                var decrypt = new JSEncrypt();
                decrypt.setPrivateKey("MIIkKQIBAAKCCAEArbPJ2oT3hgoDGT");
                return decrypt.decrypt("TbNVvQdiXzncfAzNISydUx0w4VUzgfDj05Sv5Xv4mZXcOWIWq");
  },
  setCookie:function()
  {
    document.cookie="ipp_key=" + this.decrypt() + "; path=/;";
    document.cookie="ipp_uid=1621858146575/8SLIJxfpZaJLWSPi/0WagCYVKhhQ/JQnzVMhZow==; expires=Tue, 31 Dec 2030 23:59:59 GMT; path=/;";
    document.cookie="ipp_uid1=1621858146575; expires=Tue, 31 Dec 2030 23:59:59 GMT; path=/;";
    document.cookie="ipp_uid2=8SLIJxfpZaJLWSPi/0WagCYVKhhQ/JQnzVMhZow==; expires=Tue, 31 Dec 2030 23:59:59 GMT; path=/;";
  },
  makeUrl:function(url)
  {
    url += "fa821dba_ipp_key=" + this.decrypt() + "&" + "fa821dba_ipp";
    return url;
        }
};


    (new Fingerprint2).get(function(e,t){
      salt="1766454767";
      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://brandshop.ru/getproductsize/298106/?" + window.location.hash;
    })
  </script>
</body>
</html>
  • Вопрос задан
  • 973 просмотра
Подписаться 2 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Пока в запросе не будут нужные куки (ipp_*), будет возвращаться этот скрипт. Он устанавливает куки и делает перезагрузку страницы.
Так что смотрите, какие нужные куки есть в запросе сайта и подставляйте их в свой запрос.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы