Парсинг статей с импортом в вордпресс

  • Автор темы Автор темы signup
  • Дата начала Дата начала

signup

A-Parser Pro License
A-Parser Pro
Можно ли настроить парсер под парсинг статей и с последующей выгрузкой в вордпресс?
 
Статьи парсить можно (если имеется в виду парсинг тектов с различных страниц). Для этого существует парсер HTML::TextExtractor HTML::TextExtractor
Результаты парсер сохраняет только в папку results, в текстовом виде. А далее вы уже можете выгружать их куда нужно.
 
Можно через апи апарсера и промежуточный php скрипт
то есть получаем текст с апарсера а дале програмно добавляем в блог
 
Это да, я просто думал возможно сразу ли заточить выгрузку напрямую без промежуточных скриптов. Тоесть настроить файл импорта для вордпресса сразу, чтобы не задоействовать промежуточные скрипты. Сразу на выходе получить 1 файл, который бы можно было загрузить в вордпресс.
 
Без скриптов дополнительных врядли
 
Это да, я просто думал возможно сразу ли заточить выгрузку напрямую без промежуточных скриптов. Тоесть настроить файл импорта для вордпресса сразу, чтобы не задоействовать промежуточные скрипты. Сразу на выходе получить 1 файл, который бы можно было загрузить в вордпресс
я думаю это легко сделать, достаточно сформировать правильный XML https://gist.github.com/bkeating/840711
 
Для wordpressa давно есть плагины которые сами будут парсить и публиковать, зачем извращаться?
 
я думаю это легко сделать, достаточно сформировать правильный XML https://gist.github.com/bkeating/840711
Я правильно понимаю, что можно сохранять результаты в корректном для вордпресс xml, а потом сторонним скриптом по крону на автомате импортировать на сайт?

Уже нашел ответ на форуме.
 
Последнее редактирование:
может кому пригодится, когда-то делали с товарищем для себя, но т.к. дело не пошло, то мож кому пригодится.

тайтл располагается между тегами #title#, контент между тегами #content#, теги по умолчанию закоментированы, не помню, работают они там или нет, но если кому сильно надо - они располагаются между тегами #tags#. вместе с этим делом юзается плагин с названием "kama thumbnail" или как-то так, нужен он для того, чтобы первое найденное изображение в статье использовалось как превьюшка для новости в категории вордпресса. текстовик должен называться так, как будет ваш пост называться. мы под каждую категорию делали по такому и запускали по крону каждый. 1 текстовик = 1 пост. текстовик после использования удаляется. вобщем вид текстовиков для постинга:
#title#тут тайтл#title#
#content#
тут контент, многострочность контента работает нормально, также сюда можно парсить картинку тематичную
#content#
#tags#тут теги#tags#

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'Off');
set_time_limit(50);


require_once('wp-config.php');
require_once('wp-settings.php');

$path = getcwd();
$wd = $path.'/papka/'; // рабочая папка, откуда брать текстовики с контентом
$d = @opendir($path."/papka");

$files = array();
while (($name = @readdir($d)) !== false) {
    if ($name == "." or $name == ".." )
        continue;
    $files[] = $name;
}



if(!empty($files)) {
shuffle($files);// мешаем
$name = @$files[0]; // так как и так перемешано, просто берем первый элемент
if(@empty($name)) { // на всякий еще раз проверим, вдруг пропустили что где
    echo 'no file';
    exit;
}
$input = @file_get_contents($wd.$name); // гасим ошибки

if(@empty($input)) { // пустой файл
    echo 'empty file';
    exit;
}

if(!preg_match('!#title#(.*?)#title#!siu', $input, $title_arr)) {
    echo 'no title';
    exit;
}
$title = $title_arr[1]; // title


if(!preg_match('!#content#(.*?)#content#!siu', $input, $content_arr)) {
    echo 'no content';
    exit;
}
$content = $content_arr[1]; // наш контент


/*if(!preg_match('!#tags#(.*?)#tags#!siu', $input, $tags_arr)) {
    echo 'no content';
    exit;
}
$tags = $tags_arr[1]; // теги
*/

} else {
    echo 'No file';
    exit;
}
closedir($d);


$postname = str_replace(".txt", "", $name);

$post = array(
    'post_title' => $title,
    'post_content' => $content,
    'post_author' => 1,
    'comment_status' => 'open',
    'ping_status' => 'closed',
    'post_type' => 'post',
    'post_category' => array(2),//здесь нужно поставить id категории, взять можно из админки вп
    'post_name' => $postname,
    'post_status'  => 'publish'
);

$post_id = wp_insert_post($post);

echo $post_id;

if($post_id !== 0) {
    //del
    @unlink($wd.$name);
}
?>
 
Назад
Верх