Как вы очищаете сайт, который отключил DevTools - PullRequest
0 голосов
/ 16 февраля 2020

Как очистить сайт, который отключил Chrome DevTools?

Используя Puppeteer, я попытался получить время вылета и прилета конкретной авиакомпании, используя соответствующий селектор CSS, но безуспешно, поскольку DevTool отключен.

Во время небольшой проверки, аналогичной тому, что сделал Facebook, я обнаружил, что веб-сайт отключил DevTools, протокол, по которому Puppeteer контролирует браузер. Я не могу запустить какую-либо действительную функцию JavaScript в консоли.

Пожалуйста, есть ли какой-нибудь подход к поиску таких сайтов?

enter image description here

ОБНОВЛЕНИЕ

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

function preventAction(a) {
  a.preventDefault();
  return false
}
jQuery(function() {
  $(document).on("paste", "input", preventAction);
  $(document).on("drop", "input", preventAction);
  $("html").css({
    userSelect: "none"
  })
});
$(function() {
  var c = 0;
  function b() {
    if (!c) {
      setTimeout(function() {
        console.warn("%cYou are not allowed to use developer tools in Production mode!", "font: 2em sans-serif; color: yellow; background-color: red;")
      }, 1);
      c = 1
    }
    throw "Console is disabled!"
  }
  var a, d = {
    set: function(e) {
      a = e
    },
    get: function() {
      b();
      return a
    }
  };
  console.log("2016 Hitit Computer Services");
  console.warn("%cYou are not allowed to use developer tools in Production mode!", "font: 2em sans-serif; color: #fefefe; background-color: #B5121B; padding: 4px;");
  Object.defineProperty(console, "_commandLineAPI", d);
  Object.defineProperty(console, "__commandLineAPI", d);
  Object.defineProperty(window, "_commandLineAPI", d);
  Object.defineProperty(window, "__commandLineAPI", d);
  Object.defineProperty(window, "console", d)
});

Есть ли возможность переопределить функцию Object.defineProperty(console,"_commandLineAPI",d), загруженную сайтом с помощью Puppeteer, чтобы я мог перемещаться по дереву DOM с помощью cheerio?

...