Копируем любой сайт с помощью Python

PyWebCopy — это бесплатный инструмент для локального копирования полных или частичных веб-сайтов на жесткий диск для просмотра в оффлайн режиме.

PyWebCopy просканирует указанный веб-сайт и загрузит его содержимое на ваш жесткий диск. Ссылки на такие ресурсы, как таблицы стилей, изображения и другие страницы веб-сайта, будут автоматически переназначены в соответствии с локальным путем. Используя его обширную конфигурацию, вы можете определить, какие части веб-сайта будут скопированы и как.

Функция save_webpage скачивает страницу по указанной ссылке, в аргументы также можно передать путь, куда сохранить результат. 

А вот save_website дает возможность скачать целый вебсайт рекурсивно. Например, если сайт представляет из себя блог, то скрипт скачет все статьи, которые есть на сайте. 

Что может PyWebCopy?

PyWebCopy проверит HTML-разметку веб-сайта и попытается обнаружить все связанные ресурсы, такие как другие страницы, изображения, видео, загрузки файлов — все и вся. Он загрузит все эти ресурсы и продолжит поиск других. Таким образом, WebCopy может «сканировать» весь веб-сайт и загружать все, что он видит, чтобы создать приемлемое факсимиле исходного веб-сайта.

Чего не может PyWebCopy?

PyWebCopy не включает виртуальную модель DOM или какую-либо форму синтаксического анализа JavaScript. Если веб-сайт интенсивно использует JavaScript для работы, маловероятно, что PyWebCopy сможет сделать точную копию, если он не сможет обнаружить весь веб-сайт из-за того, что JavaScript используется для динамической генерации ссылок.

PyWebCopy не загружает необработанный исходный код веб-сайта, он может загружать только то, что возвращает HTTP-сервер. Хотя он сделает все возможное для создания автономной копии веб-сайта, расширенные веб-сайты, управляемые данными, могут не работать должным образом после того, как они были скопированы.

Ставится командой ⚙ pip install pywebcopy

Документация и примеры кода здесь

https://t.me/pro_python_code – больше полезных Python инструментов

+1
0
+1
0
+1
0
+1
0
+1
2

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *