Если вы в первый раз на этом блоге рекомендую прочитать введение

Описание работы ViKing.ApplicationFramework

27 Июнь 2013 97 comments

Давайте теперь разберемся в работе ViKing.ApplicationFramework более детально. В этой статья я попытался подробно описать работу фреймворка, поэтому статье получилось скучной и похожей на документацию. Тем не менее рекомендую ее прочитать, чтобы понять как все работает. Читать далее…

Регер почты Rambler в 15 строк кода

27 Июнь 2013 29 comments

Многопоточный. С проксями и антигейтом. И нормальным интерфейсом и статистикой. Пишется с помощью ViKing.ApplicationFramework.

Регистратор почты Rambler

Читать далее…

ViKing.ApplicationFramework

23 Апрель 2013 46 comments

Наконец-то нашел время написать эту статью. Давно уже пользуюсь, пора бы и поделиться. Итак, речь пойдет о ViKing.ApplicationFramework

Основная цель этой библиотеки — сделать процесс написания всевозможных парсеров и накрутчиков максимально быстрым при минимальном объеме кода. Фреймворк сам генерирует интерфейс и занимается потоками, остается только написать код, обрабатывающий запросы. На практике для большинства задач достаточно создать проект и написать всего пару десятков строк кода.

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

Читать далее…

Устали каждый раз писать куки и прокси в запросе?

25 Октябрь 2011 69 comments

Специально для этого в движке есть функция VkRequest.StaticRequest(). Она делает то же самое, что и обычная функция Request, но при этом не нужно указывать прокси и куки. Они берутся из специальных свойств, которые подразделяются на 2 набора. Первый:

  • GlobalProxy
  • GlobalCookies
  • GlobalHeaders

Значения этих свойств будут использоваться во всех вызовах функции StaticRequest. То есть достаточно один раз установить свойства

VkRequest.GlobalProxy = ...;
VkRequest.GlobalCookies = new CookieCollection();

И просто пользоваться функцией StaticRequest, указанный прокси будет использоваться автоматически и куки будут передаваться между всеми запросами.

При использовании многопоточности часто бывает, что нужны отдельный прокси и куки для каждого потока. На этот случай есть второй набор свойств:

  • ThreadProxy
  • ThreadCookies
  • ThreadHeaders

Это особые ThreadStatic cвойства. Это означает, что для каждого потока это свойство имеет разное значение. В остальном они работают так же как и предыдущий набор свойств. ThreadProxy и ThreadCookies имеют больший приоритет, чем свойства из предыдущего набора. То есть если указать GlobalProxy и ThreadProxy, то движок будет использовать ThreadProxy. Заголовки GlobalHeaders и ThreadHeaders работают немного по другому, движок объединяет оба эти набора в один. При этом если встречается 2 заголовка с одинаковым именем, то используется заголовок из набора ThreadHeaders.

Теперь вы можете использовать эти свойства и писать еще меньше кода Smile. Не забудьте скачать последнюю версию движка, сегодня вышло обновление.

Урок 8 — Как залить картинку

20 Август 2011 71 comments

Сегодня мы научимся заливать картинки. На большинстве серверов для этого используется формат multipart/form-data, который является довольно громоздким для написания вручную. Благодаря Viking.Engine загрузка картинок происходит так же просто как и обычный запрос.

Читать далее…

Движок теперь поддерживает HTTPS!

6 Август 2011 41 comments

Вышла новая версия Viking.Engine, теперь можно делать https запросы! Для того чтобы этим воспользоваться достаточно просто сделать запрос к https странице, все работает само. При этом только следует учесть, что далеко не все HTTP проски могут работать с HTTPS, так что советую для этого использовать соксы.

Еще появилась возможность жаловаться на неправильно разгаданную капчу. Делается это вот так:

string captchaId;
VkRequest.PostCaptcha("http://website.com/captcha?sid=234fre", out captchaId);
// Узнаем что капча неправильная
VkRequest.ReportBadCaptcha(captchaId);

И последнее, что хочу отметить – новый параметр запроса: FollowRedirects, который позволяет автоматически переходить по редиректам.

VkRequest.Request("http://vkontakte.ru/", FollowRedirects: true);

Все подробности про новую версию можно узнать на странице движка.

Вышла новая версия движка и help!

1 Июнь 2011 15 comments

На самом деле новые версии выходили вместе с каждым уроком, и из-за этого могла возникать некоторая путанница. Теперь все будет подругому – появилась страница с историей версий, на которой будут публиковаться все новые версии с указанием изменений. А еще теперь к движку можно скачать помощь и XML-документацию. К сожалению, я пока что описал далеко не все классы, но помощь тоже будет обновляться и современем станет полной. Для тех кто не знает: XML-документация нужна для того, чтобы Visual Studio могла выводить всплывающие подсказки к функциям движка. Чтобы она работала просто киньте .xml файл в папку к .dll

Урок 7 – работаем с почтой

3 Май 2011 17 comments

Зачастую чтобы зарегистрироваться на каком-то сайте нужно выполнить активацию по почте: зайти на свой ящик, найти там письмо со ссылкой и перейти по ней. Сегодня мы научимся работать с почтой через протокол POP3. Этот протокол используют все известные почтовые клиенты и он довольно прост в обращении.
Читать далее…

Урок 6 — парсим HTML

24 Апрель 2011 56 comments

Часто нам бывает нужно вытащить из веб-страницы какую-то информацию, например профиль из социальной сети. Многие до сих пор делают это с помощью регулярных выражений (или вообще с помощью поиска подстроки). В простейших случаях это работает, но в целом подход неправильный. Тут мне сразу же вспоминается известное обсуждение на Stackoverflow. Кстати говоря, полностью спарcить HTML с помощью регулярных выражений невозможно в принципе, т.к. это языки разных уровней в иерархии Хомского. К счастью в наш движок уже встроен парсер HTML, остается только им воспользоваться. И в этой статье я собираюсь показать как это делается на примере профиля Павла Дурова ВКонтакте. Читать далее…

Урок 5 – продвинутый регер rambler.ru.

18 Январь 2011 44 comments

На этот раз мы будем учиться на примере более серьезной программы, которую, например, можно продать и на полученные деньги пойти купить себе сникерс :). Это будет усовершенствованный регер почты rambler.ru, быстрый, многопоточный, с поддержкой антигейта и всех видов проксей. Программа эта более длинная чем предыдущие, поэтому я не буду объяснять как работает весь исходник, а расскажу только про важные части. Остальное в основном связано с работой интерфейса и можно понять просто глядя на код. Читать далее…