Есть ли способ выполнять интеллектуальный поиск с веб-сайта?

#python #html #web-scraping

#python #HTML #очистка веб-страниц

Вопрос:

Я работаю на python. Я получил бесплатный пробный доступ к веб-сайту под названием AdInsight. Это пример того, как он структурирован: это. Теперь дело в том, что веб-сайт не является бесплатным доступом, но мне пришлось запросить бесплатную пробную версию через мое учреждение, чтобы при попытке очистить его с помощью Bs4 или аналогичного, мне показалось, что у меня нет требований для входа на веб-страницу (что у меня с тех пор, когдаЯ пытаюсь ввести «нормально», что мне удается сделать. Возможно, проблема может заключаться в том, что я открываю веб-страницу в Chrome и работаю с локальной средой в Safari. Однако часть HTML-кода, которая кажется мне актуальной, выглядит следующим образом:

 </script>
  <script class="optanon-category-2" type="text/plain">
   dataLayer = [{
    'user': {
    'visitor_id': getVisitorIdFromLocalStorage()
    },
    'session': {
    'authentication':{
    'authenticationID': '1',
    'method': 'anonymous'
    }
    },
    'page': {
    'pageInfo': {},
    'category': {
    'pageType': ''
    },
    'attributes': {
    'template': '',
    }
    },
    'privacy': {},
    'version': '1.0.0',
    }];
    (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
    j=d.createElement(s),dl=l!='dataLayer'?'amp;l=' l:'';j.async=true;j.src=
    'https://www.googletagmanager.com/gtm.js?id=' i dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-N8RLKKZ');
    
    function getVisitorIdFromLocalStorage() {
    return localStorage.getItem("visitor_id");
    }
  </script>
  <noscript>
   <h1 class="noScriptMsg">
    Either you have JavaScript disabled or your browser does not support Javascript . To work properly, this page requires JavaScript to be enabled.
    <br/>
    <a href="https://www.enable-javascript.com/" target="_blank">
     How to enable JavaScript in your browser?
    </a>
   </h1>
  </noscript>
 </head>
 <body>
  <input id="userEmailId" name="userEmailId" type="hidden" value=""/>
  <input id="userBpIds" name="userBpIds" type="hidden" value="1"/>
  <input id="userIsLoggedIn" name="userIsLoggedIn" type="hidden" value="false"/>
  <input id="userIsLoginTypeInstitutional" name="userIsLoginTypeInstitutional" type="hidden" value="false"/>
  <input id="userIsAnonymous" name="userIsAnonymous" type="hidden" value="true"/>
  <input id="userIsAnonymousUser" name="userIsAnonymousUser" type="hidden" value="true"/>
  

Есть ли способ, с помощью которого я могу просто рекурсивно получить доступ к поисковой системе веб-сайта и получить нужную мне информацию (которая скрыта, если у вас нет разрешений)

Спасибо,

Federico

Комментарии:

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

2. Итак, я правильно понимаю, что для доступа к нужным страницам вам сначала нужно войти в систему?

3. @GProst спасибо за ответ. Итак, я работаю в академическом учреждении, которое предоставило мне бесплатную пробную версию веб-сайта. Я выполняю удаленный доступ из дома и уже ввел учетные данные веб-сайта в Google Chrome

Ответ №1:

IIUC ваша очистка не работает, потому что вам нужно войти в систему на этом веб-сайте.

Аутентификация в Интернете осуществляется с помощью файлов cookie (отправляемых через Cookie заголовок в HTTP-запросе), поэтому в каждом вашем HTTP-запросе вы должны включать этот Cookie заголовок для аутентификации.

Итак, я вижу 2 распространенных варианта:

  1. Аутентифицируйтесь на веб-сайте вручную в браузере, перейдите в DevTools и скопируйте Cookie заголовок с вкладки «Сеть». Затем установите этот заголовок для библиотеки HTTP-запросов, которую вы используете для очистки.
  2. Используется Selenium для входа на веб-сайт, а затем для очистки веб-сайта с помощью Selenium

Другой вариант — проверить, есть ли на этом веб-сайте общедоступная документация по API. Если они это сделают, вы должны найти там всю необходимую информацию, скорее всего, там будет какой-то токен аутентификации, который вы можете сгенерировать для использования в качестве заголовка в ваших HTTP-запросах на авторизацию.