TextPipe – программа с очень большими возможностями. Ее основное предназначение – обработка текстовой информации, преобразование текста и извлечение информации из текста.

 Интерфейс программы TextPipe

Он позволяет с высокой скоростью автоматически обрабатывать сотни файлов в соответствии с набором правил, указанных вами. Правила в программе называются английским словом Filters. Это переводится как фильтры. Поэтому далее я просто буду называть их фильтрами. Разработчик программы – австралийская фирма Datamystic. Сайт программы http://www.datamystic.com/textpipe

Эта программа – необходимый “must have“ инструмент для каждого веб дизайнера. Она также будет всем, кому требуется извлекать данные из текстов или их преобразовывать.

С ее помощью вы сможете:

  1. Внести изменения с помощью функций поиск/замена по всему сайту.
  2. Обработать логи своего сайта объединив их в один файл и отсортировав и/или выделив нужную информацию.
  3. Преобразовать табличные данные в разделяемые символом, и наоборот.
  4. Обработать базы данных в формате CSV добавляя, удаляя или изменяя поля.
  5. Перекодировать информацию из одной кодировки в другую.
  6. Извлечь информацию из баз данных.
  7. Объединить несколько файлов, отсортировать и разделить на отдельные файлы.
  8. Извлечь нужный текст из многих файлов. Например, ссылки или адреса электронной почты.
  9. Преобразование текстов из одного языка в программирования в другой (например, языка Паскаль в язык С).
  10. Решить много других задач. Некоторые из них будут рассмотрены в примерах.
  11. С программой лучше работать следующим образом. В области Trial Run Area (Пробная область) уже есть некоторый текстовый пример.

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

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

С помощью программ offline-браузеров, например, Teleport, вы скачиваете необходимые страницы из интернета, сохраняете их в папке и затем настраиваете TextPipe на извлечение из этих страниц необходимых данных. Более сложный вариант - применение TextPipe в качестве парсера - программы извлекающей из страниц, например описания товара, его характеристик, цены. Или личную информацию и персоне: фамилию, имя, отчество, телефон, адрес и т.п. Для этого требуется более сложная настройка, тем не менее сделать это вполне возможно. Несомненным плюсом будет возможность представления собранной информации в виде таблицы Excel, в отсортированном виде и с удаленными дубликатами.

В качестве примера преобразования текста можно привести задачи по конвертированию информации между различными кодировками.

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

Фильтр – базовое понятие для программы TextPipe. Есть фильтры простые, и есть достаточно сложные. В следующих главах фильтры будут рассмотрены более подробно. Пример простого фильтра. Перекодировать текст из кодировки Windows 1251 в Unicode. Разумеется можно осуществить обратное преобразование. Еще пример – фильтры извлекающие из текста гипертекстовые ссылки или адреса электронной почты. Пример более сложных фильтров. Осуществить замену в тексте по заданному шаблону – это легко. Можно скажем заменить слово «мама» в текстах на слово «папа». А усложниться задача может легко потому, что имеются богатые возможности по замене. Происходит это благодаря возможности использования для этого языка Perl, EasyPattern или многого другого. Но об этом – позднее.

От многих слов яснее не становится. Фильтры, опять фильтры. Давайте, наконец, что-нибудь сделаем и посмотрим: как это работает? На примере получится нагляднее.

Видеопример к Главе 1.

Запускаем программу. В открытой программе у нас есть вкладка Trial Run Area (Пробная область). Это – область заполненная текстом. Вкладка - вещь весьма удобная. Иногда, в случае необходимости обработки единичного файла, я копирую его в окно, заменяя пробный текст, обрабатываю прямо тут в ней и смотрю результат. Скопируем туда страницу на которой есть гипертекстовые ссылки.

В качестве примера я использовал главную страницу Яндекса (http://yandex.ru). Открыл ее, CTRL+U, чтобы просмотреть исходный код страницы. CTRL+A, CTRL+C - чтобы выделить и скопировать код в клипборд.

Переходим на вкладку Filters To Apply. В левом окне программы в папках сгруппированы фильтры. Открываем папку Extract и дважды кликаем на Extract URLs добавляя его в список используемых фильтров. Далее нажимаем кнопку Process Trial Run Text или клавишу F5 и смотрим результат. У меня получилось извлечь 177 адресов. Адреса ведут на ресурсы самого Яндекса и на другие сайты.

Слегка усложним задачу. Получим список адресов, не имеющих отношения к Яндексу. Очевидно, что в этом случае в адресе не будет слова yandex. В этой же папке фильтров находим фильтр Extract lines non-matching (inverse grep) и вписываем слово yandex. Запускаем программу, и в итоге получилось 9 адресов, которые действительно ведут за пределы Яндекса. Вместо фильтра Extract lines non-matching (inverse grep) можно использовать фильтр Remove Matching Lines. Он находится в папке фильтров Remove и подпапке Remove Lines. Дважды кликаем на него, добавляя в список фильтров. В окне фильтра также пишем yandex. На данный момент у нас задействованы 3 фильтра. Два последних делают одно и то же. Дважды кликаем на фильтре Extract lines non-matching. Это вызывает появление символа перечеркивания на нем и означает, что он использоваться не будет. Запускаем программу и опять получаем 9 адресов. Вывод: для получения результата можно использовать разные фильтры.

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

В TextPipe встроена возможность работы с HTML документами. А это делает утилиту незаменимым и универсальным инструментом.