Как перевести 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
Заказать работу
предложить оффер

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

Archive

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