Фрилансеры предложат решение вашей задачи уже через несколько минут!

Публикация заказа на фриланс бирже не займет много времени.

7 лет назад
Владимир Фофанов
42 года, Россия
12 лет в сервисе
Был онлайн 4 года назад
7 лет назад

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

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

Выбранный исполнитель
Илья Саяпин
Илья Саяпин 
29 лет, Россия
7 лет в сервисе
Был онлайн 6 лет назад
7 лет назад

$20

2 дня

Отзыв заказчика
Илья отлично понял суть задачи, провел необходимые длительные исследования (чтобы выяснить поведение поисковых систем, задействованных в задаче), и написал код который точно делал то, что мы хотели, и даже немного больше. Нам очень понравилось работать с Ильей.
Отзыв фрилансера
Заказчик показал себя на самом высоком уровне, начиная с ТЗ в котором был доскональна расписан весь алгоритм и sql-запросы, заканчивая самостоятельной правкой кода в необходимых местах. Если вас нанял Владимир, считайте, что вам повезло с работой.
  • Рекламное место свободно
    25 дней за $9
  • Рекламное место свободно
    25 дней за $9
  • Рекламное место свободно
    25 дней за $9
Денис Захаревич
35 лет, Украина
8 лет в сервисе
Был онлайн 7 лет назад
7 лет назад
Илья Саяпин
Илья Саяпин 
29 лет, Россия
7 лет в сервисе
Был онлайн 6 лет назад
7 лет назад

Другие заказы в категории «Прикладное ПО»

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