Но «окно» проверки возраста - это просто div
, которое скрывается при нажатии кнопки, а не отдельное окно:
<div class="age-check-modal" id="age-check-modal">
Вы можете использовать вкладку «Сеть» браузера в инструментах разработчика, чтобы увидеть, что при нажатии кнопки новая информация не загружается и не отправляется. Так что все уже загружено, когда вы запрашиваете страницу. «Всплывающее окно» - это даже не всплывающее окно, а элемент, чей display
изменяется при нажатии кнопки на none
.
Так что Scrapy действительно не волнует, что должно отображаться, пока загружен весь html. Если элементы загружены, они доступны. Или вы видели, что какая-то информация была недоступна без нажатия кнопки?
Вам следует больше ознакомиться с html-кодом, чтобы увидеть, что делает каждый веб-сайт, это может упростить выполнение ваших задач.
Редактировать: После проверки исходного HTML вы можете увидеть следующее:
<div class="products-list">
<div class="products-container-block">
<div class="products-container">
<div id="hits" class='row'>
</div>
</div>
</div>
</div>
Вы также можете увидеть множество тегов JS-скриптов.
Инспектор элементов браузера показывает нам следующее:
Часть ::before
сообщает, что этим манипулировал JS, поскольку вы не можете сделать это с помощью простого CSS. Подробнее см. ответ Granitosaurus .
Это означает, что вам нужно каким-то образом выполнить произвольный код JS на этих страницах. Поэтому вам нужно либо решение с помощью Scrapy, либо просто использовать Selenium, как это делают многие, и как вы уже сделали.