1. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

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

Тема в разделе "Делимся опытом", создана пользователем signup, 4 сен 2016.

  1. signup

    signup A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 апр 2013
    Сообщения:
    15
    Симпатии:
    2
    Можно ли настроить парсер под парсинг статей и с последующей выгрузкой в вордпресс?
     
  2. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.575
    Симпатии:
    2.172
    Статьи парсить можно (если имеется в виду парсинг тектов с различных страниц). Для этого существует парсер HTML::TextExtractor HTML::TextExtractor
    Результаты парсер сохраняет только в папку results, в текстовом виде. А далее вы уже можете выгружать их куда нужно.
     
  3. XyaH

    XyaH A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    2 апр 2015
    Сообщения:
    35
    Симпатии:
    6
    Можно через апи апарсера и промежуточный php скрипт
    то есть получаем текст с апарсера а дале програмно добавляем в блог
     
  4. signup

    signup A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 апр 2013
    Сообщения:
    15
    Симпатии:
    2
    Это да, я просто думал возможно сразу ли заточить выгрузку напрямую без промежуточных скриптов. Тоесть настроить файл импорта для вордпресса сразу, чтобы не задоействовать промежуточные скрипты. Сразу на выходе получить 1 файл, который бы можно было загрузить в вордпресс.
     
  5. XyaH

    XyaH A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    2 апр 2015
    Сообщения:
    35
    Симпатии:
    6
    Без скриптов дополнительных врядли
     
  6. Apalon

    Apalon A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    31 июл 2015
    Сообщения:
    20
    Симпатии:
    2
    Zebroid Ili Zerber
     
  7. Forbidden

    Forbidden Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    9 мар 2013
    Сообщения:
    3.339
    Симпатии:
    1.799
    я думаю это легко сделать, достаточно сформировать правильный XML https://gist.github.com/bkeating/840711
     
  8. Anatoliy

    Anatoliy A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    22 май 2016
    Сообщения:
    48
    Симпатии:
    10
    Для wordpressa давно есть плагины которые сами будут парсить и публиковать, зачем извращаться?
     
  9. Invest_it

    Invest_it A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    22 янв 2017
    Сообщения:
    6
    Симпатии:
    1
    Я правильно понимаю, что можно сохранять результаты в корректном для вордпресс xml, а потом сторонним скриптом по крону на автомате импортировать на сайт?

    Уже нашел ответ на форуме.
     
    #9 Invest_it, 22 янв 2017
    Последнее редактирование: 22 янв 2017
  10. DeLaKroiX

    DeLaKroiX A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 дек 2015
    Сообщения:
    267
    Симпатии:
    96
    может кому пригодится, когда-то делали с товарищем для себя, но т.к. дело не пошло, то мож кому пригодится.

    тайтл располагается между тегами #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);
    }
    ?>
     
    sscorpio, vipuncle, relay и 2 другим нравится это.

Поделиться этой страницей