Скрипт для поиска фраз в гугле на сайтах из списка
Есть список из фраз, которые надо искать (несколько сотен). Находятся в текстовом файле, по 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 - нежелательны.
При выставлении заявки пишите на каком языке будете делать.