Алексей Мыльников
Долгожитель форума
Откуда: Волгоград Всего сообщений: 872 Рейтинг пользователя: 6 Ссылка Дата регистрации на форуме: 22 июня 2009 |
Технология их разработки и применения на "пальцах" О назначении ботов - одним предложением Реализация практически любых новых функкциональных возможностей программы СайтСпутник - самостоятельно, независимо от разработчика программы. Доступно в программе 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} по умолчанию содержит полное имя папки с результатами работы программы СайтСпутник. Наглядный пример такой папки приведен на картинке ниже: ![]()
(Все документы, создаваемые СайтСпутником, а их более 60 видов, перечислены на ссылке выдача СайтСпутника.) Теперь осталось только вызвать из Проекта этот Бот в тот момент, когда список с новыми ссылками сформирован. Для этого:
"Стартовая площадка" определяет как раз тот момент, когда Бот следует выполнить. Полный текст Проекта состоит из двух строк и имеет следующий вид: ![]() Не набирайте вручную с клавиатуры имена ботов, названия стартовых площадок, параметры, получающие значения по умолчанию, - используйте для этого меню. Руками требуется набирать только фактические значения параметров, если они есть. Усовершенствуем Бот. Если Бот будет выглядеть так: chcp 1251>nul mkdir "{AnyDir}" copy "{folder}\Экспорт-новые-txt.txt" "{AnyDir}" (мы сами ввели в него произвольный параметр, названный {AnyDir} ), а обращение к нему в Проекте, например, так: ![]() то мы может применить разные имена папок в разных Проектах, указывая их при обращении к Боту. Важно
О назначении ботов - одним абзацем
♦ уже существующего программного обеспечения широкого профиля, ♦ новых программ, разработанных специально для СайтСпутника.
♦ сторонних программистов, ♦ продвинутых пользователей.
Пример новой функции 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('[INPUT id=y-i',S,i+1); if(i=0)then BREAK; // Признак начала очередной Новости if(pos(' CHECKED ',copy(S,i,30))=0)then CONTINUE; // Она не попала ни в одну Рубрику, следовательно, игнорирую её, и переходу к выбору следующей Новости j:=PosEx('[br ""]',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,'[html][meta http-equiv="content-type" content="text/html; charset=UTF-8"][body][h1]Новости, попавшие в Рубрики[/h1]'+DateTimeToStr(Now)+'');// Формирование html-файла стандартное - заголовок end; Sw:=copy(S,i,j-i+1); // Собственно, выкусил очередную Новость, попавшую в Рубрику Writeln(NS,Sw); // и вывожу её в файл until(false); if(fn='')then EXIT; // В Рубрики ничего не попало, файл результирующий не создавался, выхожу из бота writeln(NS,'[/boby][/html]');// Формирование html-файла стандартное - окончание CloseFile(NS); // Закрываю Результирующий файл ЧП.htm //============== Собственно работа окончена ==================================// end. Программа написана на языке программирования Delphi - это "современный Pascal", который часто используется при изучении основ программирования. Транслируем программу и exe-модуль помещаем, например, в папку "Exe\Bots" под именем "Bot_NewsFromRubricsOnly.exe". Обращение к этому боту (непосредственно к написанной нами программе) из Проекта может быть, например, таким: ![]() Пояснение:
Напоминание: используйте меню при прописке Ботов в Проектах. Дополнительные замечания:
О ботах СайтСпутника - общие положения Основные понятия:
Бот-программа:
♦ bat-файлы-с-параметрами, ♦ cmd-файлы-с-параметрами, ♦ exe-файлы-с-параметрами.
♦ любые команды операционной системы, ♦ любые готовые программы, запускаемые из командной строки, ♦ программы на любом языке программирования, разработанные независимыми программистами для СайтСпутника.
Параметры ботов по умолчанию:
♦ 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 Стартовые площадки для ботов Стартовые площадки служат для запуска размещенных на них Ботов. В настоящей реализации СайтСпутника их девять. Боты могут быть выполнены:
а именно, в моменты выполнения операции: GoBOT:<имя и параметры Бот-программы>,
Продолжение сдедует ... |
Алексей Мыльников
Долгожитель форума
Откуда: Волгоград Всего сообщений: 872 Рейтинг пользователя: 6 Ссылка Дата регистрации на форуме: 22 июня 2009 |
Профиль | Игнорировать
NEW! Сообщение отправлено: 16 мая 2019 10:11 Сообщение отредактировано: 16 мая 2019 10:20 Ещё раз, сделав небольшие добавления, повторим материал, приведённый выше. Полностью с материалами по данной теме можно ознакомиться на ссылке Боты в программе СайтСпутник. Создание Проектов, использующих Боты
(смотрите по красной стрелочке на картинке ниже).
(смотрите по синей стрелочке).
(смотрите по зелёной стрелочке). ![]() Для ботов, задействованных в операторе GoBOT:, стартовая площадка не указывается. Эти боты прописываются в Правилах попадания в Рубрики и могут быть многократно выполнены в процессе Рубрикации (в процессе анализа конкретных целевых ссылок)и повлиять на её результат, в частности, можно полностью запрограммировать свои практически любые условия попадания новости в Рубрику.
Пример Проекта с несколькими запусками одного и того же Бота Берём следующий текст демонстрационного Бота: 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.
Он отправит содержание Рубрики "Единая Россия" в папку "Для Рубрик", размещённую на Рабочем столе, и сделает это "После формирования всех рубрик и потоков". Отличие этого применения бота от первого применения: в значениях фактических параметров и в стартовой площадке. В пятой строке Проекта прописан многократный вызов этого же бота "Во время рубрикации и анализа ссылок (GoBOT:)".
четвертой строке Проекта. Практический совет: Открыть папку, содержащую основные результаты работы программы СайтСпутник, можно так: - Встаньте на какую-нибудь строку нижней таблички в окне СайтСпутника, - нажмите на правую кнопку мышки, - выберите пункт "Открыть папку файла". Скрин такой папки приведен выше. В принципе, с информацией, попадающей в выдачу СайтСпутника, Вы можете сделать всё, что сумеете сами, или что умеет сделать с ней стороннее программное обеспечение. |
Алексей Мыльников
Долгожитель форума
Откуда: Волгоград Всего сообщений: 872 Рейтинг пользователя: 6 Ссылка Дата регистрации на форуме: 22 июня 2009 |
Ссылку, точнее её адрес, размещенный в содержании другой ссылки, будем называть дочерней ссылкой. Назначение бота Вставка всего содержания дочерней ссылки или её части в содержание родительской ссылки. Применяется при анализе содержания родительской и дочерней ссылки как единого целого. Применение целесообразно на этапе Рубрикации или работы с Источниками информации. Бот является бесплатной программой и может быть применен в других программах. Описание бота
принимаемые параметры:
Простой пример применения бота в СайтСпутнике Составляем Проект: ![]() Пояснения:
- Бот находится в папке "Exe\Bots" (красная стрелочка), - получает через 1-ый параметр имя файла с содержанием родительской ссылки (коричневая стрелочка), - в качестве дочерних ссылок выбираются ссылки, содержащие в своём адресе лексему t=5835 (зелёная стрелочка), - вставляемый контент начинается с фразы Чтобы искать и заканчивается Продолжение следует ... (чёрная стрелочка), - вставляется фрагмент только из одной найденной дочерней ссылки (серая стрелочка), - выполняется Бот со стартовой площадки "Перед рубрикацией и анализом конкретной ссылки" (синяя стрелочка).
Результаты работы Проекта: A) Проект без применения бота (если в нём нет 2-ой строки), проанализирует следующее содержание ссылки (показана верхняя часть содержания): ![]() Б) Проект с применением Бота проанализирует другое содержание (показана его верхняя часть): ![]() Красная стрелочка показывает на вставленный Ботом фрагмент из ссылки index...10#pp56610. Дополнительные возможности Бота
то в адресе дочерней ссылки должны быть и лексема /News/, и лексема 2019.
Пример Проекта с использованием трёх вызовов Бота: ![]() Результат - на ссылке: 3 вызова Бота. Его лучше просматривать через Internet Explorer. |
Алексей Мыльников
Долгожитель форума
Откуда: Волгоград Всего сообщений: 872 Рейтинг пользователя: 6 Ссылка Дата регистрации на форуме: 22 июня 2009 |
Профиль | Игнорировать
NEW! Сообщение отправлено: 31 мая 2019 7:39 Сообщение отредактировано: 31 мая 2019 8:00
только предложения, содержащие ключевые слова Назначение бота Просматривает содержание очередной Рубрики, выбирает в ней предложения (сентенции),
избранные предложения отправляются в папку, указанную в параметрах, - в файл, имя которого совпадает с именем Рубрики. Размещается и выполняется со стартовой площадки "После формирования конкретной рубрики". Описание бота
Простой пример применения бота в СайтСпутнике Составляем Проект: ![]() Пояснения к Проекту:
- Бот находится в папке "Exe\Bots" (красная стрелочка), - получает через 1-ый параметр имя файла "{in}" с содержанием очередной сформированной Рубрики (коричневая стрелочка), - избранное из Рубрик будет отправлено в папку "Персоны" на рабочем столе "{desktop}\Персоны" (это 2-ой параметр, см. по зелёной стрелочке), - выполняется Бот со стартовой площадки "После формирования конкретной рубрики" (синяя стрелочка). - 3-ой параметр не указан, его можно было указать после 2-го параметра следующим образом: "{number}".
Ключевыми считаются слова, указанные в Правилах, и в Запросах, если последние присутствуют в Проекте. Предложения, в которых присутствует хотя бы одно ключевое слово, считаются избранными. Они попадают в выдачу, формируемую данным Ботом. В нашем случае выдача - это два файла: "Путин.htm" и "Медведев.htm", - которые попадают в папку "Персоны" на Рабочем столе Вашего компьютера. Результат работы Бота для Рубрики "Медведев" (его верхний фрагмент) представлен на картинке: ![]() Дополнительные особенности Бота
Подробнее - на ссылке |
Алексей Мыльников
Долгожитель форума
Откуда: Волгоград Всего сообщений: 872 Рейтинг пользователя: 6 Ссылка Дата регистрации на форуме: 22 июня 2009 |
Назначение бота В первую очередь Бот предназначен для реализации поиска и сбора информации в поисковиках, начиная не с первой страницы. В настоящее время реализован для Яндекса, Google, Mail.ru, Yahoo, Bing (MSN), Rambler, поиска в блогах Яндекса и Google. Размещается и выполняется со стартовой площадки "Перед открытием страницы Источника". Описание бота
принимаемые параметры:
2-го параметра и глубины поиска, заданной в Запросе (серая стрелочка на картинке ниже) Простой пример применения бота в СайтСпутнике Составляем Проект: ![]() Пояснения к Проекту:
- Бот находится в папке "Exe\Bots" (красная стрелочка), - получает через 1-ый параметр адрес 1-ой страницы очередного Источника"{URL}"(коричневая стрелочка), - через 2-ой параметр - номер начальной страницы поиска (см. по зелёной стрелочке), - через 3-ой параметр - номер последней страницы поиска (см. по чёрной стрелочке), - выполняется Бот со стартовой площадки "Перед открытием страницы Источника" (синяя стрелочка). Дополнительные особенности Бота
Подробнее - на ссылке |
Алексей Мыльников
Долгожитель форума
Откуда: Волгоград Всего сообщений: 872 Рейтинг пользователя: 6 Ссылка Дата регистрации на форуме: 22 июня 2009 |
В версии 9.8.2.4 программы Сайт Спутник реализованы следующие новые возможности работы с ботами.
В самом конце работы Проекта
♦ PID - идентификатор процесса программы Site Sputnik, которая произвела старт Бота. ♦ fname - полное имя файла, в котором сохранен как есть (без упрощения) контент Источника или целевой ссылки из Источника. ♦ SubNumber - порядковый номер формируемого файла выдачи в Проекте с номером Number. ♦ file - используется для удобства: для явного указания имени стороннего файла для Бота. ♦ AddRow - создание и имя строки в нижней Таблице Проекта для ссылки на файл, созданный Ботом.
♦ Глобальные переменные - реализован механизм передачи Боту значений глобальных переменных СайтСпутника и приёма изменённых Ботом значений "обратно" в СайтСпутник (это тема отдельной публикации, по сути это вмешательство в вычислительный процесс из-вне, требующий специальных знаний). Подробнее на ссылке Разработка и применение Бот-программ. |
<<Назад Вперед>> | Печать |
Форум Сообщества Практиков Конкурентной разведки (СПКР) » Библиотека источников и иструменты её создания и ведения » SiteSputnik-Bot: Боты в программе СайтСпутник |