1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Спарсить текст с архива между тегами

Тема в разделе "Техническая поддержка", создана пользователем Tatyana, 12 сен 2017.

  1. Tatyana

    Tatyana A-Parser Pro License
    A-Parser Pro

    Регистрация:
    3 апр 2017
    Сообщения:
    1
    Симпатии:
    0
    Добрый день!
    Хочу спарсить статьи с вебархива, урлы постов уже умеются.
    Использовался пресет отсюда: https://a-parser.com/threads/1822/
    Все вышло, но задавать критерий по количетсву символов мне не подходит, так как текст в постах разного обьема, и не всегда выходит корректный результат.
    По этому хочу спарсить все со страницы что между такими тегами:
    <div class="postmeta2">
    дальше парсить весь текст что идет после тега, вместе с разметкой страницы
    <div class="postmeta3">
    Вопрос заключается в том как правильно прописать регулярное выражение на парсинг текста между этими тегами?
    Или может есть более удачный вариант?
    В идеале нужно получить текстовые файлы постов с разметкой для их дальнейшей заливки через зеброид.
    Заранее благодарю за ответ!
     
  2. Support Юра

    Support Юра A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    13 июн 2017
    Сообщения:
    122
    Симпатии:
    70
    Добрый день.
    Если я правильно понял, Вам нужно забирать на странице не только текст, но и разметку. Используйте следующий параметр:
    [​IMG]
    Регулярное выражение которое будет забирать весь исходный код будет иметь приблизительно такой вид
    <начальный тег>(.+?)<конечный тег> - забирает весь исходный код, между тегами и помещает в переменную. Для забора всех совпадений, используйте в регулярке флаг "g".
    Сохраняйте отобранный контент в текстовый файл под названием исходного запроса, через переменную $query.orig.txt
     
  3. Vvtex

    Vvtex A-Parser Pro License
    A-Parser Pro

    Регистрация:
    9 окт 2017
    Сообщения:
    124
    Симпатии:
    24
    Поднятие поста из прошлого.
    Этот пресет работает хорошо, а вот вопрос как разбить текст и сохранять его по иному.
    Сам текст.
    "Независимая оценка зданий
    Наша компания предлагает качественные услуги по оценке коммерческой недвижимости. Все услуги выполняются опытными компетентными специалистами. Мы работаем быстро, слаженно, в соответствии с существующими законами, стандартами и правилами, учитывая постоянные изменения. Одно из направлений в этой сфере — оценка зданий и сооружений. На сегодняшний день это одна из самых востребованных услуг на рынке. Конкуренция в оценке зданий велика и следовательно качество нашей работы на высшем уровне"
    сохранять должно вот так

    Независимая оценка
    оценка зданий
    зданий Наша
    Наша компания
    компания предлагает
    предлагает качественные
    качественные услуги
    услуги по
    по оценке
    оценке коммерческой

    Варианты сохранение фразы по 2,3,4,5 слова? с переносом на новую строку.
     
  4. Support

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

    Регистрация:
    16 мар 2012
    Сообщения:
    4.377
    Симпатии:
    2.107
    Это можно сделать шаблонизатором. Алгоритм такой: разбиваем текст на слова регуляркой и выводим из полученного массива по два слова.
    [​IMG]
    Код:
    [% text = "Независимая оценка зданий
    Наша компания предлагает качественные услуги по оценке коммерческой недвижимости. Все услуги выполняются опытными компетентными специалистами. Мы работаем быстро, слаженно, в соответствии с существующими законами, стандартами и правилами, учитывая постоянные изменения. Одно из направлений в этой сфере — оценка зданий и сооружений. На сегодняшний день это одна из самых востребованных услуг на рынке. Конкуренция в оценке зданий велика и следовательно качество нашей работы на высшем уровне";
    
    words = text.match('\b(\w+)\b', 1);
    max = words.size - 1;
    FOREACH i IN [1..max];
        p = i - 1;
        words.$p _ ' ' _ words.$i _ "\n";
    END %]

    По аналогии можно сделать вывод нужного количества слов в строке.
     
    Vvtex нравится это.

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