Як я додав 30000 чоловік у перше коло контактів, а цю соцмережу заблокують в РФ

Згадуючи співбесіди зі свого минулого вирішив не йти у гору», а щоб вона сама прийшла до мене, точніше кадрові співробітники з вакансіями. Знову пошук роботи і тепер на ринку де реальні доходи стали менше, а претендентів більше…

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



Мені пощастило познайомитись і поспілкуватись з цікавими людьми з індустрії, отримати сотні повідомлень зі спамом і посилання на сотні вакансій. Готового сценарію тут не буде, але в публікації є пара фрагментів коду для магії webdriver і посилання. Також ви дізнаєтеся останні новини про пошук роботи в Росії і опис мого досвіду з просування в соцмережі…

Це лише приказка...
Мій досвід
Шлях від 160 контактів у соцмережі до 30000 контактів зайняв у мене пів року. Додавав невеликою кількістю запитів у добу. По-перше, я нікуди не поспішав. Провів пару тижнів на лікарняному — переніс ЛОР операцію і ще пару тижнів після лікарняного я відновлювався. На дворі було літо і можна було загоряти в обід і кататися на велосипеді. В кінці літа вибралися на море на пару тижнів. Зібрав черговий верстат з ЧПУ власної розробки на рейкових напрямних, з можливістю «рулити» з програми в JVM. Я продовжував займатися улюбленою справою але тепер вже всі 8 годин в день. Програмував на java і groovy, але вже для своїх хобі-проектів. Вивчав нові технології, які популярні на ринку.

А в цей час скрипт пару раз в день трудився за мене — шукав і додавав нові контакти. Я відповідав на повідомлення, спілкувався з людьми і витрачав на це не більше півгодини в день.

Надії, як на платформу для публікації новин на професійні теми себе не виправдали. Сотні переглядів публікацій, мінімальна активність користувачів.

Більше 30000 не додати через штучне обмеження мережі. Зараз у мене 320 запитів від людей на додавання їх у контакти, але з-за цього обмеження додати їх я не можу.

Тривалий час я був на 1м місці за кількістю переглядів серед свого першого кола і перше місце за переглядами співробітників останнього місця роботи. Перевірено, що це перевага не дає нічого корисного!!! Я завжди користувався безкоштовним аккаунтом і не бачив сенсу вступати в маркетингові акції мережі «введіть номер вашої банківської картки — перший місяць безкоштовно».



Що мені сподобалося — можна отримати цікаві повідомлення і дізнатися про нове, коли додаєш незнайомого користувача в контакти. Ну і самий приємний і несподіваний наплив повідомлень привітаннями з днем народження — близько 200 вхідних!

В основному, пропозиції вакансій були з переїздом за кордон, але не в самі цікаві локації. На нашому ринку пропонували багато вакансій або в нецікавих предметних областях де особливо і не потрібна моя експертиза і технічні знання, або це вакансії в компаніях про внутрішні умови в яких я знав від різних людей, або оплата мене не влаштовувала.

Щоб пройти низку інтерв'ю і через жорна формальних тестів і мільйонів алгоритмічних задач в google і компанії з подібним конкурсом мені шкода сил і швидше за все даремно втраченого часу. Хоча мені і приходило пропозицію взяти участь у цьому захоплюючому процесі. До того ж негативний досвід говорить, що виконання навіть складних тестових завдань з написанням коду за TDD на співбесіді або після нього не гарантує що будеш після цього займатися цікавою роботою за професією з технічно складними завданнями.

Новини минулого тижня
Крім покупки соціальної мережі Microsoft, що стало для мене сюрпризом, такі новини шокували ще більше. Мосміськсуд визнав законним рішення про блокування LinkedIn в Росії. Суть претензій до соцмережі — недотримання закону «Про персональних даних», який вимагає, щоб сервера з даними громадян перебували на території Росії. І ця новина була про відхилення апеляції соцмережі за минулим рішення Таганського районного суду Москви.

Найцікавіше у всьому цьому — це коментар Ольги Голодець. Вона заявила, судячи з публікації в новинах, що однією з основних можливостей для працевлаштування росіян залишається портал Роструда — загальноросійська база вакансій «Робота в Росії». Я вперше дізнався про його існування з новин. А ви, як ІТ професіонали, часто їм користуєтеся і чули про нього?

Програмна частина
З цілком зрозумілих причин, в тому числі, щоб уникнути хабрэффекта, скрипт я не буду роздавати. Але тієї інформації, яку я публікував на хабре разом з моїми прикладами по посиланнях на гитхаб, вистачить для бажаючих автоматизувати рутинну взаємодія з майже будь-якими веб-сайтами.

Суть автоматизації...

Є прислів'я: дай голодному рибу, і ти нагодуєш його на один день. Дай йому вудку, навчи її ловити рибу — і ти нагодуєш його на все життя.

Все про що я розповідаю засноване на open source.

А цей анедот швидше відноситься до пропрієтарним технологій вСоціалізм: нагодувати голодного рибкою.

Капіталізм як нам його малюють: не годувати голодного рибкою, а дати йому вудку.

Капіталізм як він є насправді: не давати вудку, а продати її в кредит, не даючи голодному зрозуміти, що ні доступу до рибного ставу, ні права на вилов у нього все одно немає, т. к. та ставок і риба давно належать тим, кому він тепер ще й за вудку повинен…

Знову повертаючись до технологій. Раніше вже розповідав на хабре про вебдрайвер «Що нам коштує сайт розпарсити. Основи webdriver API». Рекомендую прочитати для початку ту статтю, а тут лише опишу нову інформація з особистого досвіду про те як автоматично завантажити та підключити до програми вебдрайвер для chrome, як скроллировать з скрипта сторінки по вертикалі. І якщо «безголовий» браузер PhantomJS сайту легко виявити і заблокувати ваш аккаунт, то з chromium+webdriver так легко це не зробиш.

Автоматична установка драйвера для chrome
У webdriver для реального браузера крім API на стороні клієнта є і исполнимая в окремому процесі частину, яка робить браузер маріонеткою нашої програми.

Часто його завантажують вручну і вказують шлях у додатку. Але навіщо, якщо можна це зробити автоматично.

Для цього в JVM додатку потрібно додати залежність com.github.igor-suhorukov:mvn-classloader:1.6.

В залежності від того, яка у вас операційна система передати в якості значення os win32, linux64 або mac64. win32 працює і на 64-розрядних системах.

String chromedriver = MavenClassLoader.usingCentralRepo().resolveArtifact("com.github.igor-suhorukov:chromedriver:bin:" + os + ":2.24").getFile();
// у разі linux потрібно зробити в програмі chmod(chromedriver);
System.setProperty("webdriver.chrome.driver", chromedriver);

Порівняємо з тим як це робили для PhantomJS:

// залежність для проекту com.github.igor-suhorukov:phantomjs-runner:1.1
import com.github.igorsuhorukov.phantomjs.PhantomJsDowloader
...
String phantomJsPath = PhantomJsDowloader.getPhantomJsPath()

Прокрутка з динамічною подгрузкой даних
Код нижче працює у мене в chromium і скролирование сторінки викликається з методу submitRequest. Для прокручування вікна використовую javascript і щоб виконати його з контексту сторінки потрібно привести тип вебдрайвера до типу org.openqa.selenium.JavascriptExecutor. Дані при прокручуванні сторінки завантажуються динамічно.

private static void submitRequest(WebDriver driver) throws InterruptedException {
...
scroll((JavascriptExecutor) driver, (long) (MIN_SCROLL + Math.random() * SCROLL_INTERVAL));
...
}

private static void scroll(JavascriptExecutor javascriptExecutor, long maxScroll) throws InterruptedException {
long valPrev = 0;
long val = 0;
while (valPrev< maxScroll && (val = scrollViewport(javascriptExecutor)) >valPrev){
valPrev = val;
Thread.sleep((long) (MIN_TIME+Math.random()*TIME_INTERVAL));
}
}

private static Long scrollViewport(JavascriptExecutor driver) {
return (Long) driver.executeScript("var h=document.documentElement.scrollHeight; window.scrollTo(0, h); return h;");
}

Що далі?
Написання скрипта з webdriver вирішує лише малу частину того, що потрібно зробити для пошуку. І золота рибка все ще не спіймана. До того ж життя сповнене сюрпризів! І що буде далі після блокування соціальної мережі ми дізнаємося найближчим часом. Шкода лише буде втратити можливість спілкуватися з професіоналами зі сфер далеких від ІТ, хто все ще не вміє користуватися VPN або Tor…
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.