Sinyfy - Static Site Visual Cloner (Без Selenium)
Project description
SINYFY v1.0
Static Site Visual Cloner - Инструмент для клонирования веб-сайтов в статическую версию без использования Selenium.
📋 Описание
SINYFY - это легковесный инструмент для создания статической копии веб-сайта. Он скачивает HTML, извлекает все стили (включая инлайн), сохраняет изображения локально и создает полностью автономную версию сайта.
🌟 Особенности
- ✅ Простота использования - одна команда для клонирования сайта
- ✅ Без Selenium - работает только с HTTP запросами
- ✅ Автономная версия - все ресурсы сохраняются локально
- ✅ CSS обработка - извлекает внешние и инлайн стили
- ✅ Изображения - скачивает и оптимизирует
- ✅ Заглушки - создает плейсхолдеры для недоступных изображений
- ✅ Безопасность - удаляет JavaScript и обработчики событий
- ✅ Кроссплатформенность - работает на Windows, macOS, Linux
🚀 Установка
Через pip (рекомендуется)
pip install Sinyfy
Из исходников
git clone https://github.com/thetemirbolatov-official/Sinyfy.git
cd Sinyfy
pip install -e .
📖 Использование Базовое использование
# Простое клонирование сайта
Sinyfy https://example.com
Загрузка - Sinyfy загружает HTML страницы
Парсинг - анализирует структуру документа
CSS обработка:
Извлекает все <style> теги
Скачивает внешние CSS файлы
Преобразует инлайн стили в отдельные классы
Изображения:
Скачивает все изображения
Конвертирует data URI в файлы
Создает заглушки для недоступных изображений
Очистка:
Удаляет JavaScript
Убирает обработчики событий
Нормализует ссылки
Сохранение:
index.html - очищенная страница
style.css - все стили в одном файле
images/ - все изображения
manifest.json - информация о ресурсах
Пример результата
text
output/
├── index.html
├── style.css
├── manifest.json
└── images/
├── image_0001.png
├── image_0002.jpg
├── bg_0001.png
└── placeholder_0001.png
🛠 Требования
Python 3.7 или выше
Зависимости автоматически устанавливаются:
requests - для HTTP запросов
beautifulsoup4 - для парсинга HTML
Pillow - для обработки изображений
🤝 Вклад в развитие
Форкните репозиторий
Создайте ветку для фичи (git checkout -b feature/amazing-feature)
Закоммитьте изменения (git commit -m 'Add amazing feature')
Запушьте ветку (git push origin feature/amazing-feature)
Откройте Pull Request
📄 Лицензия
MIT License. Смотрите файл LICENSE для деталей.
👨💻 Автор
thetemirbolatov
GitHub: @thetemirbolatov-official
PyPI: thetemirbolatov
Sinyfy - сделано для простого клонирования сайтов
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sinyfy-1.0.0.tar.gz.
File metadata
- Download URL: sinyfy-1.0.0.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
331ff9777e7f9136b970191462c7afa2df9d54a30be1657c5f26cf4d7b39ea66
|
|
| MD5 |
d0a4a05df960926e6a2194b8c0721138
|
|
| BLAKE2b-256 |
103e10e2cf27a61b24258a1a2faa6a1c2d98e1a4419554dbbd6f31c0760eaa4c
|
Provenance
The following attestation bundles were made for sinyfy-1.0.0.tar.gz:
Publisher:
publish.yml on thetemirbolatov-official/Sinyfy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sinyfy-1.0.0.tar.gz -
Subject digest:
331ff9777e7f9136b970191462c7afa2df9d54a30be1657c5f26cf4d7b39ea66 - Sigstore transparency entry: 957434576
- Sigstore integration time:
-
Permalink:
thetemirbolatov-official/Sinyfy@ee89aaf1bae249432eaba92ec60700bde3576e1f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/thetemirbolatov-official
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ee89aaf1bae249432eaba92ec60700bde3576e1f -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file sinyfy-1.0.0-py3-none-any.whl.
File metadata
- Download URL: sinyfy-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
764551c87fd220df097b9bba502a4cb8314f38410490b52775134bea4470d178
|
|
| MD5 |
8be391454f46169039c2a0e9e83342cb
|
|
| BLAKE2b-256 |
28b56ef63eb56529e7199d1c5f51577ca1b80cdc7fe1d4e526677ea1a774d05b
|
Provenance
The following attestation bundles were made for sinyfy-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on thetemirbolatov-official/Sinyfy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sinyfy-1.0.0-py3-none-any.whl -
Subject digest:
764551c87fd220df097b9bba502a4cb8314f38410490b52775134bea4470d178 - Sigstore transparency entry: 957434578
- Sigstore integration time:
-
Permalink:
thetemirbolatov-official/Sinyfy@ee89aaf1bae249432eaba92ec60700bde3576e1f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/thetemirbolatov-official
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ee89aaf1bae249432eaba92ec60700bde3576e1f -
Trigger Event:
workflow_dispatch
-
Statement type: