Скрипт для поиска фраз в гугле на сайтах из списка

Владимир16 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
09.06.2013

Есть список из фраз, которые надо искать (несколько сотен). Находятся в текстовом файле, по 1 фразе на строке.

Есть список URLов сайтов (домены 2го уровня или 3го). Находятся в текстовом файле, по 1 УРЛу на строке.

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

Утилита желательна с интерфейсом командной строки. Аргументы командной строки:

[имя файла c фразами] [имя файла c УПЛами сайтов]

Искомую фразу окружаьт в кавычки (чтобы было точное соответствие). То есть искать в гугле делать данный запрос:

site:sitename.com "text to search"

Как сохранять результаты сохранять в БД (mysql) :

Есть таблица

create table searchresults (site char(100), phrase char(100),url char(300),searchid char(40),

state ENUM('accepted', 'unknown', 'rejected')

);

site это имя сайта где ищем

phrase - что ишем, без кавычек

url - где это найдено

searchid - последний аргумент командной строки скрипта.

state - засчитали ли мы урл как годный

Алгоритм:

Для каждой фразы {

print STDERR "searching for $phrase";

Для каждого сайта {

смотрим есть ли для данной phrase & site запись where state='accepted'

Если есть - переходим к следующему сайту.

Делаем поиск в гугле.

Для каждого найденного урла в гугле {

проверить что в таблице searchresults для данного url & phrase нет записи с любым state. Если есть - ничего не делаем. Если нет - добавляем запись c state='unknown'.

}

}

}

После окончания работы скрипта - печатаем на STDERR кол-во добавленных в бд записей.

Скорее всего не на каждом сайте будет находится хоть одна фраза!!

Логин-пароль-host-dbname - к БД мы будем задавть прямо в исходном коде. Так что вынесите это куда-нибудь в константы.

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

Производительность и эффективность нам не важна, это будет запускаться ручками не чаще раза в день, можем подождать результатов хоть 10 часов.

Писать надо на скриптовом языке (типа php/perl/python/ruby). Всякие компилируемые дельфи, с,с++ а также .net - нежелательны.

При выставлении заявки пишите на каком языке будете делать.

Заявки фрилансеров