#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 распространенных варианта:
- Аутентифицируйтесь на веб-сайте вручную в браузере, перейдите в DevTools и скопируйте
Cookie
заголовок с вкладки «Сеть». Затем установите этот заголовок для библиотеки HTTP-запросов, которую вы используете для очистки. - Используется
Selenium
для входа на веб-сайт, а затем для очистки веб-сайта с помощьюSelenium
Другой вариант — проверить, есть ли на этом веб-сайте общедоступная документация по API. Если они это сделают, вы должны найти там всю необходимую информацию, скорее всего, там будет какой-то токен аутентификации, который вы можете сгенерировать для использования в качестве заголовка в ваших HTTP-запросах на авторизацию.