Бесплатные CMS > Как создать сайт на PHP > Простой парсер на PHP

Парсинг HTML страниц на PHP

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

Самым легким и быстрым решением оказалось написание PHP-скрипта.

Итак, как написать просто парсер HTML-страниц на PHP?

Надо отметить, что у старого HTML-сайта был очень чистый код, поэтому регулярное выражение для получения текста статьи оказалось очень простым:

$regex = '|<div id="site-content">(.*?)<\/div>|usim';

Далее необходимо указать путь к директории, где хранился старый HTML-сайт:

$dir = './html';

И записать список файлов в массив:

$files = array_diff(scandir($dir), array('..', '.'));

Затем перебираем массив с помощью конструкции foreach:

foreach ($files as &$file)

Получаем содержимое HTML-файла:

$content = file_get_contents (__DIR__ . '/html/'.$file);

Выдергиваем из него непосредственно текст статьи:

preg_match($regex, $content, $text);

И чистим его от HTML тегов, оставив только знаки абзаца:

$text = strip_tags($text[0], "");

Сохраняем в TXT-файл с тем же именем:

file_put_contents("txt/".$file.".txt", $text, LOCK_EX);

Весь скрипт простого парсера на PHP:

<?php

$regex = '|<div id="site-content">(.*?)<\/div>|usim';

$dir = './html';

$files = array_diff(scandir($dir), array('..', '.')); // убираем 2 пустых элемента

foreach ($files as &$file) {

$content = file_get_contents (__DIR__ . '/html/'.$file);

preg_match($regex, $content, $text);

$text = strip_tags($text[0], "<p>");

file_put_contents("txt/".$file.".txt", $text, LOCK_EX);

}

?>

Меню сайта

Парсинг HTML страниц на PHP
Парсинг HTML страниц на PHP