Многопоточная программа, работа с Яндексом на C++
Необходимо создать программу, посылающую запросы к ПС Яндекс и возвращающую ответ в виде html/xml (в зависимости от настроек) кода.
По сути это даже не полноценная программа, а ее каркас, содержащий функционал по работе с Яндексом.
Многопоточная программа, отправляет запрос вида:
Исходный код страницы с выдачей это и есть возвращаемый результат результат.
Программа должна иметь возможность работы в трёх режимах:
1) Работа через веб-интерфейс.
Вводим список запросов в поле, задаем количество потоков, жмем старт, выводим получаемые результаты. Для каждого потока указываем логин и пароль на Яндексе, т.к. для залогиненых юзеров он реже кидает капчу. Если Яндекс кинул капчу, то выводим её на форме и даём пользователю возможность её ввести, после чего продолжаем запросы. При появлении капчи для одного потока, остальные продолжают работать. Должна быть возможность указать время задержки между запросами одного потока.
2) Работа через Яндекс.XML (http://xml.yandex.ru/)
Вводим список запросов в поле, задаем количество потоков, жмем старт, выводим получаемые результаты. Для каждого потока указываем прокси и параметры user и key. Выводим в данном случае возвращаемый xml Должна быть возможность указать время задержки между запросами с одного прокси.
3) Работа через прокси
Вводим список запросов в поле, задаем количество потоков, жмем старт, выводим получаемые результаты. Вводим список проксей, тут не нужно логиниться. Если Яндекс кинет капчу, запрос передаем в обработку другому потоку, прокси схвативший капчу отправляем в режим бездействия на минуту (т.е. в течении минуты, он не участвует в работе). Если прокси возвращает "левую" страницу (например, не содержащую строк "Запросов за месяц:") или не отвечает по таймауту, удаляем его из списка, запрос передаем другому. Должна быть возможность указать время тайм-аута для прокси.
Программа должна быть разбита на классы, код хорошо прокомментирован. Должно без проблем компилироваться под VS 2010. Задавайте вопросы, если что-то не понятно.
Пишите цену и сроки выполнения.