Первый проект на Zennoposter +399$, как перепрыгнул с С++ и С#

Misha

Client
Регистрация
23.10.2016
Сообщения
250
Благодарностей
71
Баллы
28
Что полезного в данной статье
1. В шаблоне можете посмотреть на оптимизацию браузера
2. Обход зашиты cloudflare
3. Как хранить большой объем файлов на диске
4. Как программисту с опытом работы на С# или С++ или любом другом языке перейти на зенку. Мой опыт :D


Всем добрый день, хочу описать свой опыт как я открыл для себя Zennoposter, что послужило толчком для изучения этого инструмента.
В двух словах о себе, я пишу разные программули на С++ или С# , работаю на бирже фрилансе где нахожусь в топе по нескольким направлениям.
Клиентов много даже приходилось обращаться за помощью к коллегам по цеху, и я ещё не знал всех прелестей зеннопостера и особо не мог и заняться.

И тут ко мне попал один проект где требовалось создать парсер который должен скачать информацию с сайта (возможно вы не зайдете на этот сайт:-) у них там серьезная зашита стоит) просто сохранять все станицы профилей пользователей в виде файлов. Бюджет 10000 грн

Многие наверняка подумаю что задача easy, но есть пара нюансов
1. На сайте стоит cloudflare зашита, при чем когда я делал парсер мне казалось что они следят в реальном времени за тем как я их защиту обхожу и сразу делают так что решение уже не рабочее
2. Профилей пользователей больше 96 млн, как их хранить если нужно было выгружать просто на диск файлы html страницы.

Я решил все делать на С++ get/post запросы, и иногда использовать браузер чтобы получить защитный ключ cloudflare, делал я это с большим энтузиазмом и затянулось это примерно на 7 дней, но к моему удивлению после успешных тестов через день проект перестал работать, что-то они изменили в защите (скорей всего они увидели что один ключ используется на разных айпи и быстренько это пофиксили) и уже все мои запросы банились сразу из-за этого ключа... Я конечно не ожидал такого поворота) Но не расстроился, а сразу же вспомнил что есть зеннопостер и на 100% был уверен что с помощью него можно решить вопрос, хотя я никогда на нем ничего не делал и у меня стояла только демо версия. В общем я связался с клиентом, объяснил ситуацию и рассказал что один варик решения купить зеннопостер и на нем все сделать... Он сразу же купил PRO версию и Я начал решать вопрос, конечно с начала за короткий промежуток времени сложно разобраться в зенке, и я обратился к человеку у которого взял 3 часа консультации по зенке, интересно было что этот парень даже программирование не знал, а пользовался только зеннопостером. Опыт программирования очень помог разобраться в зеннопостере.

1. Как вопрос решился с cloudflare и какие были проблемы?

Очень просто купили большой пул прокси и просто их использовали. Мы отказались делать решение для разгадывания капчей чтобы не тратить на это время из-за того что объем выгрузки очень большой, да и прокси было достаточно... Был один неприятный нюанс с банами прокси
Например: делаю запрос
Screenshot_12.png

получаю бан все явно видно, и нюанс был такой я нахожу рабочую прокси делаю около 100 запросов но потом прокси может перестать работать или ее забанят и уже сайт не присылает страницу бана, а начинает как-то странно реагировать (может конечно это особенность зенки) например у меня страница открыта на ссылке 1/2/3 , а я делаю запрос на ссылку 1/2/4 браузер грузиться но по факту переходит обратно на страницу 1/2/3
Решение: сохраняться предыдущий текст ссылки и потом проверять с текстом который будет использоваться для следующего запроса

2.Как хранить данные на диске например 1млн файлов ?

Решение: У каждого профиля был уникальный ид например 423532635334634435
было принято решение что мы создаем 2 каталога один каталог где лежат файлы с текстом, второй каталог зеркальный но там лежат пустые файлы он нужен был для того чтобы мы могли проверять есть ли в базе уже профиль или нету на случай если каталог с основными данными будет копирован в другое место.
Формирование пути к файлу
C#:
string url = project.Variables["peopleUrl"].Value;
string id = url.Substring(url.LastIndexOf("_G")+2);
id = id.Replace("-", "");
string path = "res_empty";


for(int j = 0; j < id.Length; ++j)
{
    if(j < 6){
        path += "\\" + id[j];
    }
    else
        path += id[j];
}
path += ".txt";
return @"C:\fastp\" + path;
Как это выглядит в каталоге
Screenshot_13.pngScreenshot_14.png

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

Надеюсь кому-то это информация поможет)
Я для себя точно нашел отличное решение через какое можно делать многие задачи за короткое время, с момента использования зенки я написал больше 30 шаблонов для проектов. Многие из которых без зенки не получилось бы сделать.
Желаю всем добра) С Наступающим новым годом!
KkNoF4i.jpg
 
Тема статьи
Нестандартные хаки
Номер конкурса статей
Двенадцатый конкурс статей

Вложения

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование:

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 371
Баллы
113
Больше похоже на правду. Даже C++/CLI в .net используют в специфичных случаях.
Но из .net языков советую попробовать F# :-)
У каждого профиля был уникальный ид например 423532635334634435
было принято решение что мы создаем 2 каталога один каталог где лежат файлы с текстом, второй каталог зеркальный но там лежат пустые файлы
Но почему не лёгкую локальную базу?

По статье, думаю её ещё стоит дополнить.
 
Последнее редактирование:
  • Спасибо
Реакции: Misha

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
289
Баллы
63

inilim

Client
Регистрация
16.09.2017
Сообщения
446
Благодарностей
170
Баллы
43
Такое чувство что кто то статью оборвал на 90%, где продолжение?
Где эти пункты ?
1. В шаблоне можете посмотреть на оптимизацию браузера
2. Обход зашиты cloudflare
3. Как хранить большой объем файлов на диске
4. Как программисту с опытом работы на С# или С++ или любом другом языке перейти на зенку.
 

Misha

Client
Регистрация
23.10.2016
Сообщения
250
Благодарностей
71
Баллы
28
Больше похоже на правду. Даже C++/CLI в .net используют в специфичных случаях.
Но из .net языков советую попробовать F# :-)

Но почему не лёгкую локальную базу?

По статье, думаю ей ещё стоит дополнить.
Попробую #F

С базой не парились сильно, там нюанс что мы сохраняли всю страницу со всем текстом, и объем получался нормальный.И у клиента были возможности хранить все данные на на диске ...
Такое чувство что кто то статью оборвал на 90%, где продолжение?
Где эти пункты ?
1. В шаблоне можете посмотреть на оптимизацию браузера
2. Обход зашиты cloudflare
3. Как хранить большой объем файлов на диске
4. Как программисту с опытом работы на С# или С++ или любом другом языке перейти на зенку.
Возможно вы не прочитали статью внимательно))
2. 3. пункты я опиал в статье
Про оптимизацию инстанса я не описал, так как она сразу при открытии шаблона сделана.
А собственно 4 пункт возможно я не глубоко раскрыл, будет инфа для следующей статьи
 

Вложения

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 923
Благодарностей
1 123
Баллы
113

Misha

Client
Регистрация
23.10.2016
Сообщения
250
Благодарностей
71
Баллы
28
А не лучше бд использовать под такое?

Кто-то на C++ переходит, кто-то наоборот с zenno на C++.
Возможно и лучше, но мы сохраняли страницу html со всем текстом
Я С++ не оставил)) Так и пишу на нем, просто изучил зенку хорошо,теперь иногда использую в практике!
 
  • Спасибо
Реакции: OlegR

OlegR

Client
Регистрация
11.06.2015
Сообщения
240
Благодарностей
250
Баллы
63
Я С++ не оставил)) Так и пишу на нем, просто изучил зенку хорошо,теперь иногда использую в практике!
Привет) скажи пожалуйста какие проекты выполняешь на С++, а какие на Zennoposter? есть ли плюсы от такого синтеза?
 
  • Спасибо
Реакции: Misha

Misha

Client
Регистрация
23.10.2016
Сообщения
250
Благодарностей
71
Баллы
28
Привет) скажи пожалуйста какие проекты выполняешь на С++, а какие на Zennoposter? есть ли плюсы от такого синтеза?
Привет, на С++ делаю в основном проекты где требуется быстродействие и способы зашиты легко обходить тогда С++ 100% ну и главный фактор чтобы клиент был готов платить цену которую а прошу ....
На зеннопостере делаю проекты почти любые когда не важна скорость и колличество потоков... Плюс конечно я стараюсь продавать зеннопостер не зенобокс чтобы получать бонусы ...
 

Misha

Client
Регистрация
23.10.2016
Сообщения
250
Благодарностей
71
Баллы
28
Плюсы от такого синтеза, лично для меня многообразие задач которые я могу выполнить очень большое, если на плюсах я мог отказываться раньше от некоторых задач, то сейчас я делаю очень много всего...
Плюс зенопостер позволяет решать многие задачи очень быстро ....
Ведь бывают задачи когда человеку не надо программа, ему нужен просто готовый результат ... И на зенке можно сделать быстрее чем парится на плюсах или .NET !!
 
  • Спасибо
Реакции: OlegR

OlegR

Client
Регистрация
11.06.2015
Сообщения
240
Благодарностей
250
Баллы
63
на С++ делаю в основном проекты где требуется быстродействие и способы зашиты легко обходить тогда С++ 100% ну и главный фактор чтобы клиент был готов платить цену которую а прошу ....
способы защиты легко обходить? типа без каптч
 
  • Спасибо
Реакции: Misha

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
...получаю бан все явно видно, и нюанс был такой я нахожу рабочую прокси делаю около 100 запросов но потом прокси может перестать работать или ее забанят и уже сайт не присылает страницу бана, а начинает как-то странно реагировать (может конечно это особенность зенки) например у меня страница открыта на ссылке 1/2/3 , а я делаю запрос на ссылку 1/2/4 браузер грузиться но по факту переходит обратно на страницу 1/2/3
Решение: сохраняться предыдущий текст ссылки и потом проверять с текстом который будет использоваться для следующего запроса...
Чтобы в браузере зенки не оставалось таких "следов" от предыдущей страницы скорее-всего надо делать как описано в посте: https://zennolab.com/discussion/threads/zapusk-instansa-perexod-po-url.69094/#post-479518
 

dimanis

Client
Регистрация
16.04.2016
Сообщения
195
Благодарностей
110
Баллы
43
Что за сайт fastpeoplesearch . com ? Вообще никак не открывается
 
  • Спасибо
Реакции: Misha

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
прокси нужны незаспамленные и с региона сайта, вот наглядно пример с каких стран открывает а с каких нет:
 
  • Спасибо
Реакции: Misha

Misha

Client
Регистрация
23.10.2016
Сообщения
250
Благодарностей
71
Баллы
28
способы защиты легко обходить? типа без каптч
Да в принципе просто главное много прокси, и грамотную логику обработки.
Капчи есть на сайте, но мы их не разгадывали чтобы не тратить на это время... У нас бы большой пул проксей...

Что за сайт fastpeoplesearch . com ? Вообще никак не открывается
Да там сайт жестко отслеживает трафик, так что не удивляйся ...

Чтобы в браузере зенки не оставалось таких "следов" от предыдущей страницы скорее-всего надо делать как описано в посте: https://zennolab.com/discussion/threads/zapusk-instansa-perexod-po-url.69094/#post-479518
Спасибо) Изи решение
 

Metrix

Client
Регистрация
03.01.2014
Сообщения
343
Благодарностей
272
Баллы
63
Хорошая статья, показывающая то, что не надо зацикливаться на одном инструменте, а использовать то, что подходит в данной ситуации.
 
  • Спасибо
Реакции: Misha

Gooldbee

Client
Регистрация
16.05.2019
Сообщения
224
Благодарностей
25
Баллы
28
За тебя! Респект
 
  • Спасибо
Реакции: Misha

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)