понедельник, 9 декабря 2013 г.

Многопоточный PHP сборщик поисковых подсказок

В предыдущих статьях я описал как создать многопоточные поисковые сборщики на PHP по следующим системам :
  • Google Suggest - сборщик поисковых подсказок Google
  • Yandex Suggest - сборщик поисковых подсказок Yandex
  • Rambler Suggest - сборщик поисковых подсказок Rambler
  • Nigma Suggest - сборщик поисковых подсказок Nigma
Весь код рабочий и выполняет свои задачи. Теперь зайдем с точки зрения удобств. Просто перепишем сборщик так, чтобы можно было запускать сразу сборщики всех типов за один раз. Для этого создадим конфигурационный файл \in\threads_cfg.in  следующего вида :
аббревиатура сборщика;Число потоков
gsu;10
ysu;10
nsu;10
rsu;10
Здесь мы указываем что надо запустить сборщики четырех типов, каждый в десять потоков. Далее готовим папку src - там создаем 4 файла для запуска каждого типа сборщика поисковых результатов в один поток :
  • gsu.php
  • nsu.php
  • rsu.php
  • ysu.php
Теперь модифицируем класс CMultiThreadLauncher , создающий потоки. Добавляем чтение и обработку конфигурационного файла для создания потоков и добавляем запуск потоков. И запускаем на выполнение. В итоге мы имеем одновременный запуск сборщиков любого типа в заданное число потоков. У всех сборщиков одинаковые входные данные запросов src/queries.txt и прокси src/proxy.txt. Эти данные делятся согласно числу потоков для каждого типа сборщика и запускается сбор.

пример сбора поисковых результатов с различных поисковых систем

Материалы :
Как всегда весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь. А где взять поисковые запросы и ключевые слова можно найти здесь. Пожелания и предложения по коду и сотрудничеству можно присылать на почту или в комментарии.

Комментариев нет:

Отправить комментарий