Опубликовано пт, 10/30/2015 - 14:43 пользователем admin
Сперва скачиваем библиотеку 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/
Файлы: