C# - работа с прокси и парсер
Язык реализации - C#
1. Универсальный класс для использование прокси.
С заданного УРЛа скачивает подготовленный прокси-лист рабочих проксей (ип:порт;тип\r\n)
Обновление листа - каждые *-** минут (обновление происходит при использовании функции класса для запроса какой-либо страницы)
Основная функция класса - Get - обеспечивает загрузку заданной страницы через один из проксей
Прокси имеют свойство дохнуть в любую секунду, а также тоже могут быть забанены, поэтому необходим контроль:
- успешность самого конекта через прокси с заданным таймаутом (таймаут - член класса, задаётся при инициализации)
- успешность получения именно нужной страницы:
-- проверяется заголовок ответа сервера (не 200 - брак)
-- в функцию (опционально) - передаётся либо 1, либо 2 массива: массив строк, которые должны быть найдены на странице в случае корректной загрузки ("
Аргументы - УРЛ, массив строк 1(опционально), массив строк 2(опционально)
Если по одной из причин попытка получить страницу не удалась - текущему проксику плюсуется параметр количества ошибок, пробуется через другой прокси.
После * ошибок, прокси идёт в локальный блеклист. Число попыток, количество ошибок и _максимально возможное время, которое прокси может быть в блек-листе_ задаётся при инициализации.
Ошибки на уровне прокси (не законектился, не успел закачать страницу, неправильные заголовки ответа) и ошибки на уровне сайта (на основе переданных массивов строк, если они используются) - считаются отдельно. И для них разные лимиты.
2. Парсер архива Лента.ру
Разобрать тут нужно всего пару страниц, так что это просто для элементарного теста многопоточной работы через класс проксей и первого пункта.
Заходим первый день в архиве каждого раздела (http://lenta.ru/sport/2005/02/17/) - парсим список УРЛов на новости в файлик, переходим на следующуюю дату и так для каждого раздела пока не уйдём на страницу "время парсинга - 1день". Информация о текущей дате для парсинга тоже сейвится в файл, дабы можно было продолжать процесс.
Другие потоки смотрят на файл с линками, загребают себе небольшие кучки и отрабатывают (вытаскивается только титл и текст, без "ссылок\сайтов по теме".
Код - вменяемый, откоментированный.
Сроки - минимальные, писать тут особо нечего.
Оплата - по факту или через СБС.