Как перевести html сайт на CMS?

Author Автор: Роман Чернышов    Опубликовано: 26 февраля 2014

В данном посте речь пойдет о том, как перевести сайт состоящий исключительно только из HTML страничек на полноценную CMS с базой данных. При этом суть задачи перенести все тексты в базу, а это заголовок Title статьи, h1 заголовок, мета теги(ключевые слова и описание), сам текст статьи, дата публикации статьи, изображение встречающиеся в статье и возможно еще какие-либо данные. И вроде-бы решение данной задачи крайне простое, достаточно просто установить подходящую CMS, а затем ручками перепечатать(скопировать) статьи в базу данных сайта.

А именно выполнить следующие действия: скопировать заголовок в html документе и вставить его в форму добавление записи в CMS, потом таким же образом скопировать мета теги, текст статьи, настроить дату(указав дату публикации задним числом, когда была опубликована оригинальная статья на html страничке), перенести изображения в другую директорию и вставить в текст статьи, в то место где оно должно быть, затем сохранить запись и перейти к следующей.

Но! Что делать если таких статей несколько десятков, сотен или даже тысяч?
Как видно из выше описанной схемы ручного переноса, данный процесс крайне затратен по времени, утомителен и практически не реален для нормального человека. Мало кто сможет сидеть несколько суток подряд и вручную переносить пару тысяч статей из html документов в базу данных CMS.

Вариант решения данной задачи
Прежде хочу оговорится, возможно этот вариант уже описывался где-то ранее, или существуют более оптимальные и удобные способы для решения поставленной задачи, мне они увы на глаза не попадались, по этому я поступил по своему и пришел к собственному решению(может это и велосипед, но крайне эффективный).

Для решения поставленной задачи, я на конкретном примере, сайте пациенте, опробовал свой PHP скрипт, предназначенный конвертировать все HTML странички сайта в записи БД, для нужной мне CMS.

Принцип работы скрипта следующий:
— Скрипт проходит все папки сайта с html страничками, анализирует все html странички, создает массив URL адресов которые нужно будет обработать далее.
— Затем циклически проходит по всем адресам, обходя все странички, собирает с них все нужные нам данные: заголовки, мета теги, текст статьи, дату(если дата не указана), то она может браться из данных о html файле(время создания файла), ЧПУ, собирает прочую информацию.
— И как результат скрипт записывает в БД собранные данные, формируя при этом правильно оформленную статью под действующую CMS
— При этом скрипт может добавлять еще некоторые данные к записи которых не было ранее в html версии сайта, это например: автор статьи, пользователь от имени которого опубликована статья, права доступа, ЧПУ и т.д.
— Работа с изображениями. Скачивание изображений и сохранение их в новую папку, предварительно сортируя по указанным параметрам, вставка новых путей к ним в текст статьи.
— Немаловажной функцией можно назвать возможность изменения и фильтрации получаемого текста/данных при парсинге от нежелательных html тегов, символов или некого мусора. Возможность вырезания из получаемого материала неугодных данных и многое другое.

Скрипт можно назвать умным парсером контента, с последующей обработкой, подготовкой и записью данных в БД.

Данная методика была опробована мною на нескольких html сайтах состоящих из нескольких сотен страниц до нескольких тысяч. Причем в процессе работы попадались HTML страницы с разным оформлением, стилями и дизайном в целом. Но благодаря работе скрипта через PHP xPath разбор DOM дерева, серьезной перенастройки парсинга данных не требовалось.

Заметка. Для достижения наилучшего результата конвертирования html сайта в сайт работающий на CMS, рекомендуется вести сбор данных не в автоматическом режиме, а полуавтоматическом, это когда всю основную работу делает скрипт, но при этом вы просматриваете собранные им данные перед моментом записи данных в базу данных. С целью дополнительной модерации и выявления возможных ошибок при сборе данных с html страничек, а также возможной потребности в дополнительном форматировании и оформлении статьи.

Теперь о недостатках (если это можно назвать так)
Данный скрипт я не выкладываю в публичный доступ для скачивания и дальнейшей работы с ним. Дело в том, что работает этот скрипт индивидуально с каждым html сайтом, т.е. перед началом его работы требуется произвести настройки: xpath для сбора данных из DOM дерева, каталоги которые требуется обойти, работу с ЧПУ, работу с картинками и прочее. Получается, что работать с ним может только специалист понимающий ряд тонкостей в парсинге. А также понимающий структуру БД конечно CMS (таблиц и полей в БД).

Если у вас есть потребность в решении данной задачи, то вы можете обратиться ко мне, за умеренную плату(относительно всем прочим вариантам) я произведу для вас данные работы по переносу контента на CMS.

Оставить комментарий

Автор блога
Роман Чернышов
Веб-разработчик,
Full Stack
Senior, Architect
PHP, JavaScript, Node.JS, Python, HTML 5, CSS 3, MySQL, Bash, Linux Admin
Заказать работу
предложить оффер

Моя книга
Книга. Веб-разработчик. Легкий вход в профессию
Печатная книга
Веб-разработчик.
Легкий вход в профессию
Купить за 159₽
Последние вопросы
Список вопросов
Последние комментарии
Меню

Archive

Мои проекты
Insurance CMS Love Crm CMS Совместные покупки Мой PHP Framework Хостинг для моих клиентов Лицензии на мой софт и поддержка