Парсинг удалённого сайта на Drupal и создание нод

Сперва скачиваем библиотеку QueryPath в корневую папку сайта. Далее создаём файл parser.php и подключаем в нём ядро Друпала и библиотеку QueryPath:

// Подключение ядра Друпала для использования его функций
setlocale(LC_ALL, 'ru_RU.UTF-8');
define('DRUPAL_ROOT', '/home/zalman/localserver/bellagio.loc/public_html');
$_SERVER['REMOTE_ADDR'] = "localhost";
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
// Подключение библиотеки QueryPath
require DRUPAL_ROOT . '/QueryPath/QueryPath.php';

Далее парсим txt файл со списком ссылок, по которым будем просматривать сторонний сайт:

// Построчный парсинг txt файла
$array = file("urls.txt");
foreach ($array as $key => $value) {

}

При каждом проходе цикла парсим нужные нам элементы на странице:

$array = file("urls.txt");
foreach ($array as $key => $value) {
    $url = trim($value);

    // Парсинг документа по ссылке с помощью QueryPath
    $table = htmlqp($url, 'table');
    $title = htmlqp($url, 'h1');
    $content = htmlqp($url, '.main .content');

}

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

// Создаём объект ноды
    $node = new stdClass();
    $node->type = "menu"; // Указываем тип материала
    $node->title = $title; // Заголовок ноды
    $node->language = 'ru';
    node_object_prepare($node); // Функция подготовки ноды
    $node->uid = 1; // автор ноды - админ

    // Инструкция по добавлению разных типов полей:
    // http://timonweb.com/posts/how-to-programmatically-create-nodes-comments-and-taxonomies-in-drupal-7/

    // Добавля нужные нам поля в ноде
   $node->field_custom_name[$node->language][]['value'] = 'Value field';

    $node = node_submit($node); // Подготавливаем ноды к сохранению
   node_save($node); // Сохраняем ноду

Инструкция по добавлению прочих видов полей: 

http://timonweb.com/posts/how-to-programmatically-create-nodes-comments-and-taxonomies-in-drupal-7/

 

 

Файлы: