SiteSputnik-Bot: Боты в программе СайтСпутник

May 20, 2019 11:35

SiteSputnik-Bot: Боты в программе СайтСпутник Разработка и применение Бот-программ,
Боты (Bots) как расширение программы СайтСпутник Автор
Алексей Мыльников


Дата выхода публикации - 16.05.2019г.     






СайтСпутник, Спутник Сайт) - программа поиска информации на нескольких языках, многоязычный сбор информации,скачать
SiteSputnik (Site Sputnik) - бот-программная система сбора информации, мониторинг СМИ, на нескольких ботах
Сайт Спутник. Site Sputnik. Мониторинг, программный комплекс бот, упоминание роботов
Спутник. Система. Боты
Спутник. Sputnik. Мониторинг, боты: СМИ, соцсети.
Назначение ботов в программе СайтСпутник
Технология их разработки и применения на "пальцах"

О назначении ботов - одним предложением
Реализация практически любых новых функкциональных возможностей программы СайтСпутник -
самостоятельно, независимо от разработчика программы.

Доступно в программе SiteSputnik, начиная с версии 9.7.1 от 16.05.2019.

Выражаю благодарность Дмитрию "MOS" за конструктивный диалог, состоявшийся в процессе разработки данной функции программы.

Пример разработки новой функции своими силами

В СайтСпутнике, например, нет следующей функции, которая в некоторых случаях может быть весьма полезной:
отправка новых ссылок, найденных при очередном выполнении Проекта, в заданную папку.

В качестве демонстрационного Проекта возьмем следующий простой Проект:
наблюдение за появлением новых ссылок на трёх первых страницах выдачи Яндекса по запросу: Дмитрий Медведев.

Внешний вид этого Проекта представлен на картинке ниже:



Технология разработки новой функции СайтСпутника своими силами такова.

Создаём текст Бота (пояснения к нему смотрите ниже) и
помещаем его в пакетный bat-файл с именем, например: "Файлы\Medvedev&Yandex.bat":

chcp 1251>nul
mkdir "C:\NewsMedvedev"
copy "{folder}\Экспорт-новые-txt.txt" "C:\NewsMedvedev"

Пояснение:
1-я строка - это вспомогательная команда для работы с русской кодировкой в bat-файле (это особенность синтаксиса bat-файлов; так надо).
2-я строка - это команда Windows, создающая на диске "C:\" папку "NewsMedvedev" (если папка существует, то эту команду можно опустить).
3-я строка - это команда Windows, копирующая файл "{folder}\Экспорт-новые-txt.txt" в папку "C:\NewsMedvedev".
Параметр {folder} по умолчанию содержит полное имя папки с результатами работы программы СайтСпутник.
Наглядный пример такой папки приведен на картинке ниже:



  • В коричневую рамочку на картинке обведён файл "Экспорт-новые-txt.txt".
  • Он как раз и содержит список новых ссылок, которые ни разу не были найдены ранее при выполнении данного Проекта.
  • Именно его в третьей строке Бота прописано скопировать в папку "C:\NewsMedvedev".
  • (Все документы, создаваемые СайтСпутником, а их более 60 видов, перечислены на ссылке выдача СайтСпутника.)

    Теперь осталось только вызвать из Проекта этот Бот в тот момент, когда список с новыми ссылками сформирован.

    Для этого:
  • выбираем Бот из меню (большая красная стрелочка на картинке ниже),
  • прописываем ему фактические параметры, если они есть (синяя стрелочка),
  • прописываем ему "Стартовую площадку" - "После открытия всех Источников" (зелёная стрелочка).

  • "Стартовая площадка" определяет как раз тот момент, когда Бот следует выполнить.

    Полный текст Проекта состоит из двух строк и имеет следующий вид:



    Не набирайте вручную с клавиатуры имена ботов, названия стартовых площадок, параметры, получающие значения по умолчанию, -
    используйте для этого меню. Руками требуется набирать только фактические значения параметров, если они есть.

    Усовершенствуем Бот.

    Если Бот будет выглядеть так:
    chcp 1251>nul
    mkdir "{AnyDir}"
    copy "{folder}\Экспорт-новые-txt.txt" "{AnyDir}"
    (мы сами ввели в него произвольный параметр, названный {AnyDir} ),

    а обращение к нему в Проекте, например, так:


    то мы может применить разные имена папок в разных Проектах, указывая их при обращении к Боту.

    Важно
  • Это был самый простой Бот, на примере которого продемонстрирована технология реализации новой функции СайтСпутника своими силами.
  • В данном крайнем случае обошлось без программирования - достаточно было команд Windows.


  • О назначении ботов - одним абзацем
  • Расширение функциональных возможностей СайтСпутника за счет применения:
        •• уже существующего программного обеспечения широкого профиля,
        •• новых программ, разработанных специально для СайтСпутника.
  • Привлечение к разработке новых функций СайтСпутника (к разработке ботов):
        •• сторонних программистов,
        •• продвинутых пользователей.
  • Обеспечение их независимости от разработчика СайтСпутника.
  • Доступность применения ботов, поддерживающих новые функции, обычным Пользователям.


  • Пример новой функции c применением программирования

    В СайтСпутнике, например, нет следующей функции:
    - определение новостей и сообщений, попавших хотя бы в одну Рубрику,
    - оформление из них отдельного файла (полнотекстовой новостной ленты),
    - отправка этой новостной ленты в заданную локальную папку.

    Среди команд Windows и среди множества других готовых программ нет программы, которая умеет делать это.

    "Берём" любой язык программирования, пишем такую программу сами и используем её в Боте.

    В отличии от первого примера - это другой крайний случай, самый сложный, но и самый мощный - запрограммировать можно практически любую обработку информации.

    Исходный текст программы, реализующей рассматриваемую новую функцию, приведен ниже.
    При необходимости сделаю к нему пояснения персонально или на форуме.

    program Bot_NewsFromRubricsOnly; // Автор Мыльников Алексей Борисович: 1a@sitesputnik.ru, +7(8442)73-71-23,+7(905)392-97-92 // Назначение: Бот СайтСпутника - принимает в первом параметре P1 папку с результатами работы СайтСпутника {folder}, берет в ней файл с Чистым потоком, а именно: "Чистый поток.htm", uses // считывает его, оставляет только Новости попавшие в Рубрики и сохраняет их в файле ЧП.htm, размещенном в парке, указнной во втором параметре Windows, SysUtils, // Язык программирования Delphi XE2 - чисто для лучшего понимания (практически это язык Паскаль). StrUtils; // Бот применяется со Стартовой площадки: "После формирования всех рубрик и потоков" var i,j : integer; S, Sw, fn: string; NS : TextFile; begin fn:=ParamStr(1)+'\Чистый поток.htm'; if(not(FileExists(fn)))then EXIT; // Если не существует файла "Чистый поток", то на этом обработка заканчивается S:=''; // В переменную S считаю AssignFile(NS,fn,CP_UTF8); // весь контент файла с Чистым потоком try Reset(NS); while(not(eof(NS)))do begin readln(NS,Sw); S:=S+Sw+#13#10; end; except end; CloseFile(NS); // и закрою файл //============== Собственно работа по контенту Чистого потока ================// i:=0; Sw:=''; fn:=''; repeat i:=PosEx('',S,i)+6; // j установил на окончание Новости, попавшей хотя бы в одну Рубрику if(Sw='')then begin // Это первая Новость, попавшая хоть в одну Рубрику, следовательно, создам Результирующий файл, в который буду выводить Новости fn:=ParamStr(2); if(fn='')then fn:='C:'; ForceDirectories(fn); // в fn - имя папки, в которой сформирую файл ЧП.htm, если этой папки нет, то создам её fn:=fn+'\ЧП.htm'; AssignFile(NS,fn,CP_UTF8); Rewrite(NS); // Создаю файл ЧП.htm в кодировке Юникод и в следующм операторе выведу в него стандартный заголовок Writeln(NS,'

    Новости, попавшие в Рубрики

    '+DateTimeToStr(Now)+'

    ');// Формирование html-файла стандартное - заголовок end; Sw:=copy(S,i,j-i+1); // Собственно, выкусил очередную Новость, попавшую в Рубрику Writeln(NS,Sw); // и вывожу её в файл until(false); if(fn='')then EXIT; // В Рубрики ничего не попало, файл результирующий не создавался, выхожу из бота writeln(NS,'');// Формирование html-файла стандартное - окончание CloseFile(NS); // Закрываю Результирующий файл ЧП.htm //============== Собственно работа окончена ==================================// end.

    Программа написана на языке программирования Delphi - это "современный Pascal", который часто используется при изучении основ программирования.

    Транслируем программу и exe-модуль помещаем, например, в папку "Exe\Bots" под именем "Bot_NewsFromRubricsOnly.exe".

    Обращение к этому боту (непосредственно к написанной нами программе) из Проекта может быть, например, таким:



    Пояснение:
  • Параметр {folder} - это папка с результами работы СайтСпутника, в ней есть файл "Чистый поток.htm" (обведен синей рамочкой на одной из картинок выше),
  • Бот принимает этот файл через первый параметр - смотрите в исходном тексте программы 10-ую строку: "fn:=ParamStr(1)+'\Чистый поток.htm';".
  • Параметр {DeskTop}\Потоки - это папка "Потоки", размещённая на Рабочем столе Вашего компьютера, которую Бот использует для отправки в неё результата своей работы.
  • Стартовая площадка "После формирования всех рубрик и потоков" означает, что вызов бота осуществится в SiteSputnik News после выполнения соответствующих действий.

  • Напоминание: используйте меню при прописке Ботов в Проектах.

    Дополнительные замечания:
  • по описанной выше технологии к СайтСпутнику можно "прикрутить" самые разнообразные программы,
  • важно, чтобы к таким программам можно было обратиться из командной строки,
  • разработка ботов доступна программистам или продвинутым Пользователям, а не только разработчику СайтСпутника,
  • применение Ботов доступно обычным Пользователям.


  • О ботах СайтСпутника - общие положения

    Основные понятия:
  • При выполнении Проектов программа Сайт Спутник может запускать бот-программы.
  • Бот-программы могут быть запущены с нескольких стартовых площадок (см. ниже) СайтСпутника.
  • Они (боты) могут быть запущены как с ожиданием окончания их работы, так и без него.
  • Ботам может быть передана информация, добытая СайтСпутником.
  • Они (Боты) могут переработать информацию и передать её "обратно" в программу.
  • Боты могут поставить "свою" информацию СайтСпутнику.


  • Бот-программа:
  • Боты могут быть созданы как:
        •• bat-файлы-с-параметрами,
        •• cmd-файлы-с-параметрами,
        •• exe-файлы-с-параметрами.
  • В качестве программ, входящих в состав Бота, может быть использован любой исполняемый код, например:
  •     •• любые команды операционной системы,
        •• любые готовые программы, запускаемые из командной строки,
        •• программы на любом языке программирования, разработанные независимыми программистами для СайтСпутника.
  • Никакие API со стороны программы СайтСпутник не используются.
  • Обмен данными между Ботами и СайтСпутником осуществляется через параметры ботов.


  • Параметры ботов по умолчанию:
  • С разных стартовых площадок СайтСпутника, ботам доступны разные параметры.
  • Перечень основных параметров следующий.
  •     •• URL - адрес Источника или целевой ссылки, выбираемой из Источника (в зависимости от стартовой площадки).
        •• IN - полное имя файла, в котором СайтСпутник сохранил контент Источника, или целевой ссылки из Источника.
        •• OUT - по умолчанию получает то же значение что и параметр IN, но используется, как правило, для удобства, для явного указания имени стороннего файла, хотя это можно сделать и через произвольный параметр (см. ниже).
        •• Folder - полное имя папки, в которую СайтСпутник складывает добытые результаты (промежуточные и конечные).
            Это очень важный параметр. Из него Бот может получить, а затем обработать и вернуть в СайтСпутник:
            •• Списки адресов или сниппетов всех целевых ссылок, полученных при выполнении Проекта.
            •• Списки адресов или сниппетов только новых целевых ссылок, только новых сайтов, только новых доменов 3-го уровня.
            •• Статистические данные по источникам, рубрикам, доменам.
            •• Содержание Рубрик, создаваемых СайтСпутником.
            •• Практически любой из 60 документов из выдачи СайтСпутника,
        •• Alias - полное имя текущего ящика (папки, в которой выполняется Проект).
        •• Box - последнее имя из полного имени текущего ящика.
        •• Number - порядковый номер Проекта, выполняемого в текущем ящике.
        •• DeskTop - полное имя папки Рабочего стола компьютера.
        •• MainDir - полное имя корневой папки программы СайтСпутник.
        •• Date - текущая дата.
        •• Time - текущее время.
        •• Wait=Yes - применяется, если нужно дождаться завершения работы бота, иначе явно примените Wait=No.
        •• Quote=Yes - обеспечивает автоматическую расстановку двойных кавычек для фактических значений параметров.
    Если Вы собираетесь расставить кавычки сами, то явно примените Quote=No.

    •• Произвольный параметр - одно произвольное слово, взятое в фигурные скобки, - по умолчанию получает пустое значение.

  • Один и тот же параметр в тексте Бота может быть применен несколько раз.
  • Параметры по умолчанию могут быть применены при назначении фактических значений параметров,
         (смотрите, например, ниже в демонстрационном примере Проекта: Folder={IN} ).
  • Как уже сообщалось выше: Боты могут изменить полученную через параметры информацию и вернуть её "обратно" в СайтСпутник.


  • Фактические значения параметров:
  • Параметрам ботов можно явно присвоить необходимые фактические (конкретные) значения, например:
  •     •• Folder="D:\Рабочая папка\Shop",
        •• out="D:\Рабочая папка\Shop\FilName.html"
        •• Слово1=2019

    Стартовые площадки для ботов

    Стартовые площадки служат для запуска размещенных на них Ботов.
    В настоящей реализации СайтСпутника их девять.
    Боты могут быть выполнены:
    1. В самом начале работы Проекта,
    2. Перед открытием страницы Источника,
    3. После открытия страницы Источника,
    4. После открытия всех Источников, (эти четыре площадки доступны в SiteSputnik Pro)
    5. Перед рубрикацией и анализом конкретной ссылки,
    6. Во время рубрикации и анализа конкретной ссылки-GoBot:,
      а именно, в моменты выполнения операции:
      GoBOT:<имя и параметры Бот-программы>,
    7. После рубрикации и анализа конкретной ссылки,
    8. После формирования конкретной рубрики,
    9. После формирования всех рубрик и потоков (в самом конце работы Проекта в SiteSputnik News).

    10. Десятая площадка находится за рамками выполнения Проекта (смотрите на картинке ниже по красной стрелочке):



      Эта площадка служит для ручного запуска Ботов.

      Важно:
      Выполняя Проект, СайтСпутник последовательно проходит через все страртовые площадки и проверяет их содержание.


    Ещё раз, сделав небольшие добавления, повторим материал, приведённый выше в данной публикации.

    Создание Проектов, использующих Боты
  • Боты, стартующие из выполняющегося Проекта, выбираются и прописываются в нём из меню
        (смотрите по красной стрелочке на картинке ниже).
  • Далее указываются фактические значения параметров Бота: те, которые отличаются от принимаемых по умолчанию
        (смотрите по синей стрелочке).
  • Затем указывается стартовая площадка, с которой начинает работу Бот
        (смотрите по зелёной стрелочке).



  • Для ботов, задействованных в операторе GoBOT:, стартовая площадка не указывается.
    Эти боты прописываются в Правилах попадания в Рубрики и могут быть многократно выполнены в процессе Рубрикации (в процессе анализа конкретных целевых ссылок) и повлиять на её результат, в частности, можно полностью запрограммировать свои практически любые условия попадания новости в Рубрику.

  • Боты могут быть прописаны сразу на нескольких площадках.
  • На одной площадке можно прописать несколько ботов - каждый на отдельной строке.
  • В Боте можно вызвать другой Бот.
  • Боты, размещенные на конкретной стартовой площадке, запускаются в момент её достижения СайтСпутником.
  • Боты, запущенные с параметром Wait=Yes, выполняются последовательно.
  • По умолчанию тексты Ботов помещаются в папку Файлы, в приведенном ниже примере они выбраны именно из неё, но размещены Боты могут быть в любой папке.


  • Пример Проекта с несколькими запусками одного и того же Бота
    Берём следующий текст демонстрационного Бота:
    chcp 1251>nul
    mkdir {desktop}\{out}
    copy "{folder}{БэкСлэш}{ИмяФайла}" {desktop}\{out} Программы, задействованные в нём, принадлежат к командам Windows. Их две:
    • mkdir - создает папку на диске, если она не существует,
    • copy  - копирует файл в указанное место (в папку),
    • chcp 1251>nul - вспомогательная команда для работы с русской кодировкой.

    Формальных параметров у Бота пять: {desktop}, {out}, {folder}, {БэкСлэш} и {ИмяФайла}, два из которых используются дважды.
    Параметры {БэкСлэш} и {ИмяФайла} относятся к произвольному виду - "придуманы" нами.
    Текст Бота размещаем в СайтСпутнике в папке Файлы в файле Скопировать на Рабочий стол.bat.

    Используя три разные стартовые площадки и три разных набора фактических параметров, трижды задействуем этот бот в Проекте: Медведев и Единая Россия || News=2

    [Скопировать на Рабочий стол.bat] out=Для ссылок ИмяФайла=Экспорт-новые-txt.txt БэкСлэш=\ ^^После открытия всех Источников

    [Скопировать на Рабочий стол.bat] out=Для Рубрик ИмяФайла="Единая Россия.htm" БэкСлэш=\ ^^После формирования всех рубрик и потоков

    Рубрика://Партии/Единая Россия
    (Единая /1 Pоссия | 'ЕР' | 'ЕДРО') (Дмитрий /2 Медведев) GoBOT:Скопировать на Рабочий стол.Bat out=Для GOBOT Folder={IN}
    Цвет используется исключительно для более наглядного восприятия текста Проекта.

    Пояснения к тексту Проекта:

  • В первой строке Проекта задан поиск в новостях по запросу: Медведев и Единая Россия.
  • Вo второй его строке прописан старт Бота с площадки "После открытия всех Источников", то есть, в тот момент, когда СайтСпутник сформирует всю выдачу, создаваемую на этапе поиска и сбора ссылок и сниппетов.
  •      • Явно заданы фактические значения трех параметров:
            • out=Для ссылок
            • ИмяФайла=Экспорт-новые-txt.txt (откуда взялось это "коричневое" имя поясняется ниже)
            • БэкСлэш=\
         • Два параметра получают фактические значения по умолчанию:
            • DeskTop=<имя папки Рабочего стола Компьютера> (допустим это "C:\Users\AB\Desktop")
            • Folder=<имя папки с результатами работы СайтСпутника>(допустим это "D:\AB\FileForFiles\Internet Files\Боты")

    Скрин содержания папки с результатами работы СайтСпутника повторно приведен на картинке ниже (обратите внимание на коричневую стрелочку, показывающую на файл Экспорт-новые-txt.txt, содержащий список адресов только новых ссылок, найденных при текущем выполнении Проекта относительно всех предыдущих его выполнений). Это демонстрация того, как Боту передаётся добываемая СайтСпутником информация:



    Заменив формальные параметры на их фактические значения (это сделает СайтСпутник, достигнув данной стартовой площадки), получим Бот: chcp 1251>nul
    mkdir "C:\Users\AB\Desktop\Для ссылок"
    copy "D:\AB\FileForFiles\Internet Files\Боты\Экспорт-новые-txt.txt" "C:\Users\AB\Desktop\Для ссылок" Этот бот создаст папку "C:\Users\AB\Desktop\Для ссылок" при помощи команды mkdir и скопирует в неё файл "D:\AB\FileForFiles\Internet Files\Боты\Экспорт-новые-txt.txt" при помощи команды copy.
  • В принципе, "Отправка в папку списка адресов только новых ссылок", - это простое программное расширение функциональных возможностей СайтСпутника, которое может быть сделано без участия разработчика и независимо от него.
  • На месте mkdir и copy могут стоять другие готовые программы или программы, написанные независимыми программистами.

  • Бот Из третьей строки Проекта сделает аналогичную работу, но с другими файлами и папками и в другой момент времени. Он отправит содержание Рубрики "Единая Россия" в папку "Для Рубрик", размещённую на Рабочем столе, и сделает это "После формирования всех рубрик и потоков". Отличие этого применения бота от первого применения: в значениях фактических параметров и в стартовой площадке.


  • В пятой строке Проекта прописан многократный вызов этого же бота "Во время рубрикации и анализа ссылок (GoBOT:)".
  • С этой стартовой площадки Бот может быть вызван несколько раз.
  • Он вызывается для тех ссылок, содержание которых удовлетворяет "логическому правилу", в котором участвует Бот.
  • В нашем случае это содержание тех ссылок, в которых одновременно упомянута и "Единая Россия", и "Дмитрий Медведев".
  • Бот скопирует файлы с этим содержанием ссылок в папку "Для GOBOT", размещённую на Рабочем столе.
  • Этот Бот размещён в правиле динамической Рубрики, имя которой набрано в четвертой строке Проекта.


  • Практический совет:

    Открыть папку, содержащую основные результаты работы программы СайтСпутник, можно так:
      - Встаньте на какую-нибудь строку нижней таблички в окне СайтСпутника,
      - нажмите на правую кнопку мышки,
      - выберите пункт "Открыть папку файла".
    Скрин такой папки приведен выше.

    В принципе,
    с информацией, попадающей в выдачу СайтСпутника, Вы можете сделать всё, что сумеете сами, или что умеет сделать с ней стороннее программное обеспечение.

    Список литературы Адрес главной страницы сайта - О программе СайтСпутник.

    Полный список публикаций по программе собран на этой странице.

    Copyright © 2003-2019 ИП Мыльников Алексей Борисович. Все права защищены.
    E-mail: 1a@sitesputnik.ru, +7(8442) 73 71 23, +7(905) 3 92 97 92

    сбор, site sputnik, мониторинг, Сайт Спутник, Бот-программы, Робот, интернет, bot, поиск, Бот

    Previous post Next post
    Up