1. Разархивируйте присланный нами архив.
2. Найдите и запустите Exe файл.
3. Задайте исходные данные. В зависимости от требований задачи это может быть путь к файлу либо список начальных элементов.
4. Нажмите кнопку Start.
5. Ожидайте появления демо результатов в таблице в нижней части окна приложения.
6. Если процесс завершился, а демо результаты не появились, вышлите нам логфайл, сформированные в папке Мои документы (Documents) на вашем компьютере. Лог файл имеет расширение .txt. Его имя формируется на базе названия приложения и суффикса _cache.

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

Очередь — это очередь элементов на обработку. Очередь может состоять из ссылок на вебстраницы, названий/артикулов товаров и т.п. Перед обработкой элемента он извлекается из очереди. В процессе обработки элемента могут быть найдены новые элементы для добавления в очередь. Например, когда мы собираем ссылки с вебстраницы, эти собранные ссылки могут быть поставлены в Очередь.

История — это список ссылок на страницы сайта, которые были обработаны парсером ранее. После обработки элемента (в обычном случае) он помещается в историю.

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

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

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

Прокси (прокси сервер) – это промежуточный компьютер, который является посредником (proxy – посредник) между Вашим компьютером (на котором в данном случае работает разработанное нами приложение) и интернетом. Через него осуществляется загрузка страниц сайтов источников. Проще говоря, прокси сервер загружает страницы передает результаты приложению. Прокси дает следующие возможности:

  • Осуществлять анонимный сбор информации. Таким образом, вы не раскрываете свой IP адрес при парсинге.
  • Избегать бана (блокировки) со стороны сайта источника. Поскольку при каждом последующем обращении к сайту Datacol использует новый прокси сервер – соответственно сайт видит запрос с нового IP. Ясно, что количество прокси у вас конечное и рано или поздно используемые прокси начнут повторяться. Но в любом случае, использование прокси распределит нагрузку между разными IP адресами, что снизит вероятность блокировки или хотя бы отсрочит ее.

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

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

Таким образом, благодаря механизму обработки ошибок, процесс парсинга становится более отказоустойчивым.

Общий алгоритм работы индивидуального приложения

1. При запуске Рабочего процесса (в частности, при нажатии кнопки Start) Очередь (в обычном случае) заполняется в соответствии с настройками, указанными в настройке Starting URL list.
2. Далее каждый элемент очереди обрабатывается в соответствии с вашей задачей.
3. Когда Очередь станет пустой, Рабочий процесс останавливается. Рабочий процесс может также быть принудительно прерван пользователем.

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

Настройки

Starting URL list. Список URL, которыми (в обычном случае) заполняется очередь при запуске рабочего процесса (в частности, при нажатии кнопки Start).

Threads. Количество потоков, которые параллельно обрабатывают элементы очереди в рамках рабочего процесса. Чем больше потоков — тем быстрее происходит обработка. Однако не забывайте, что скорость может также ограничиваться пропускной способностью вашего интернета, а также ресурсами вашего компьютера.

Use proxy. Если данный флаг установлен, приложение загружает вебстраницы не напрямую, а через прокси, заданные в списке ProxyList. Из списка каждый очередной прокси выбирается случайным образом.

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

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

Use Queue/History Dump. Флаг включает использование дампа очереди и истории. В частности, если он установлен происходит следующее:

  • При завершении рабочего цикла очередь и история сохраняются в файлы queue.txt и history.txt соответственно, расположенные в папке приложения.
  • При запуске рабочего процесса очередь и история подгружаются из файлов queue.txt и history.txt. Обратите внимание, если заданные начальные URL содержатся в истории, то они будут проигнорированы!

Use Cache. Если флаг установлен, задействуется механизм кэширования. В рамках данного механизма исходный код успешно загруженных вебстраниц сохраняется в папку на локальном компьютере. Данная папка генерируется в папке Мои документы (Documents). Ее название состоит из названия приложения + суффикс _cache. В ней генерируется подпапка valid. Туда сохраняются исходные коды загруженных страниц. Каждой странице соответствует отдельный файл

Reput Error To Queue. Если флаг установлен, задействуется механизм обработки ошибок. В частности, если страница сайта источника загружена с ошибкой, она повторно ставится в очередь.
Reput Maximum. Каждая конкретная страница может быть повторно поставлена в очередь не более количества раз, указанного в данной настройке. Если значение Reput Maximum равно нулю, то любая страница может быть повторно поставлена в очередь неограниченное количество раз. Есть две наиболее распространенные ситуации, в которых может быть удобно задавать ноль в качестве значения Reput Maximum:

  • Если при парсинге у нас начинает быстро расти количество ошибок (ErrorCounter), то скорее всего нас заблокировали. Если мы включили дамп, можно нажать Stop, и текущее состояние очереди и истории будет сохранено. С учетом вышеуказанных настроек обработки ошибок, мы достоверно знаем, что страницы, которые обработаны с ошибкой находятся до сих пор в очереди. Таким образом, мы сможем перезапустить рабочий процесс в будущем (когда наш IP разблокируют) и необработанные страницы будут обработаны корректно.
  • Аналогичная проблема (увеличение количества ошибок) может произойти, когда мы задали список прокси. Обычно это говорит о том, что наши прокси заблокированы. В таком случае мы можем остановить процесс парсинга, заменить набор прокси и перезапустить его.

Maximum results to show. Максимум выдаваемых демо результатов, выдаваемых в таблице Data Gather Results. Максимальное количество групп данных, собранных в рамках запущенного процесса, которые будут отображены в области показа новостей и результатов главного окна программы. Не стоит делать это значение слишком большим, поскольку это будет создавать дополнительную нагрузку на память.

Статистика

Обычно статистика содержит следующие показатели:

  • ItemsFound — количество найденных результатов.
  • HistorySize — количество страниц в истории.
  • QueueSize — количество страниц в очереди.
  • MemoryUsed — количество задействованной памяти.
  • PageSpeed — скорость загрузки страниц.
  • ErrorCounter — количество ошибок, произошедших в рамках рабочего процесса.

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

Кнопки

Start/Stop. Кнопка запускает/останавливает рабочий процесс.

Open Application Folder. Кнопка открывает папку, содержащую файлы приложения. Также там могут содержаться файлы-дампы очереди и истории (queue.txt и history.txt) и другие папки/файлы, набор которых может варьировать в зависимости от функционала задачи и требований заказчика.

Set Defaults. Кнопка устанавливает настройки по умолчанию.

Reset Dump. Кнопка очищает содержимое дампа очереди и истории (в частности, файлы queue.txt и history.txt).

Reset Cache. Кнопка удаляет содержимое кэша.