Причина, по которой сайт загружается так долго, в том, что он использует тяжелый Javascript для отображения страницы.
Вы можете использовать Splash , который используется для визуализации на основе Javascriptстраницы.Вы можете довольно просто запустить Splash в Docker и просто отправлять HTTP-запросы в контейнер Splash, который будет возвращать HTML, который выглядит как веб-страница, отображаемая в веб-браузере.
Хотя это звучитСлишком сложный, на самом деле его довольно просто настроить, так как вам вообще не нужно изменять образ Docker, и вам не нужны предварительные знания Docker, чтобы заставить его работать.Для запуска локального сервера Splash требуется всего одна строка:
docker run -p 8050:8050 -p 5023:5023 scrapinghub/splash
Время ожидания по умолчанию составляет 30 секунд, но в случае, если вам нужно подождать, пока страница отобразится, вы можете указатьдругой таймаут в качестве аргумента.Например, для тайм-аута в 300 секунд:
docker run -it -p 8050:8050 scrapinghub/splash --max-timeout 300
Затем вы просто изменяете любые существующие запросы в вашем коде Python, чтобы вместо них направлять всплеск:
т.е. http://example.com/
становится
http://localhost:8050/render.html?url=http://example.com/
В качестве альтернативы, вы можете использовать Selenium в качестве другого пользователя, указанного выше, но мне лично было проще использовать Splash.