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

Misha

Client
Регистрация
23.10.2016
Сообщения
180
Благодарностей
45
Баллы
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
 
Категория
Заработок

Вложения

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

Zymlex

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

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

DenisK

Client
Регистрация
28.06.2016
Сообщения
363
Благодарностей
151
Баллы
43
Спасибо за статью!
 
  • Спасибо
Реакции: Misha

inilim

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

Misha

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

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

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

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

Вложения

Valandersi

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

Misha

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

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

OlegR

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

Misha

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

Misha

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

OlegR

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

orka13

Client
Регистрация
07.05.2015
Сообщения
1 602
Благодарностей
1 457
Баллы
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
Сообщения
166
Благодарностей
79
Баллы
28
Что за сайт fastpeoplesearch . com ? Вообще никак не открывается
 
  • Спасибо
Реакции: Misha

orka13

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

Misha

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

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

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

Metrix

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

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