• Как получить данные с сайта росреестра?

    Vindicar
    @Vindicar
    RTFM!
    Правило номер ноль при парсинге: при любых проблемах сохраняй на диск то, что тебе пришло в ответе от сервера.
    То, что ты видишь в браузере - это не обязательно то же самое, что браузер получил от сайта.
    То, что браузер получил от сайта - это не обязательно то же самое, что requests получит от сайта.

    В данном случае, и requests и браузер получают в ответе вот это:
    <body style="height: 100%; width:100%;">
    <div id=app style="height: 100%; width:100%;"></div>
    <script src=js/chunk-vendors.c1d200da.js></script>
    <script src=js/chunk-common.adcda62e.js></script>
    <script src=js/chunk-esri.caf28189.js></script>
    <script src=js/index.ca134891.js></script>
    </body>

    Как видишь, нужного элемента тут просто нет, потому что он создаётся динамически, через JavaScript. А BS не выполняет скрипты.

    Варианта только два:
    1. Выяснять, каким запросом сайт подтягивает данные для этого, научиться этот запрос делать самостоятельно и вытаскивать искомые данные из полученного. Медленно и трудно на подготовительном этапе, зато потом работает сравнительно быстро... если, конечно, сайт защиту от парсинга не поставит.
    2. Запускать управляемый браузер, дать ему загрузить страницу и выполнить скрипты, а потом уже искать нужные данные. Быстрое решение в плане разработки, но более медленное и ресурсоёмкое в дальнейшем использовании.
    Ответ написан
    Комментировать