X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Как написать бота
k0ttee
k0ttee
Topic Starter сообщение 1.9.2017, 16:57; Ответить: k0ttee
Сообщение #1


Первое сентября 2017 - очередной день знаний, в котором знаний нет. Позалипать на линейке, посетить организационное дерьмо, получить учебники и пролистав картинки забить на них. Сам себе "день знаний" не устроишь - никто не устроит.

Никогда никому не говори, что ты умеешь переустанавливать Windows - задолбают просьбами! :hihi: А теперь о том, как написать бота.

Все началось в браузере - плагинами, которые я уже умею писать. Запилил браузерный плагин, который каждые X минут делает пару кликов (собирает мне бонусы). Ну как такое не написать - ведь у раздающего нет капчи.
"Вкусно но мало" - подумал я, да запустил в работу сразу несколько вкладок (распараллеливание умножает профит). Но вот беда - браузерное безобразие дофига памяти занимает. Несколько приватных вкладок с разными OperaVPN'ами запустить не получилось, поэтому пришлось разворачивать виртуалки с линуксами.

Обычный аккаунт, работающий без проксей, крутился в Chrome (пошаманил вырубая лишнее):
[✓] процесс GPU, ускоряющий видосики дискретной видеокартой
[✓] утилита прокси-сервер V8, непонятно зачем вообще нужная
[✓] блокировщик рекламы, ибо роботу пофиг на рекламу
[✓] посредник Shockwave Flash, ибо это вообще не нужно
Прикрепленное изображение

На момент написания статьи обычный аккаунт уже вертится на основе wGet, при этом Chrom вообще не запущен.

Развернул три виртуалки (линуксы в контейнерах Virtual Box) и все... считай, что вся память забита.
Когда виртуалки уходили в подкачку - они дружно рушились.
Прикрепленное изображение

Ночью, когда я сплю и ничего кроме ботов не запущено - памяти хватало. Днем, когда я пользуюсь, приходилось счищать кэш в памяти перед запуском софта.

Как вы наверное догадались, я получил комп зарабатывающий деньги, на котором не желательно было делать что-то еще... И был этим опечален. :(

Но нашлось очень крутое решение - не пользоваться кучей вкладок, а общаться со скриптами на прямую (отправляя Post и Get запросы).
Может показаться, что мне пришлось чуть ли не написать свой браузер, но - нет. Оказалось, что для решения задачи подходит wGet или cUrl.

Сначала я собрался изобрести велосипед с консольным браузером Links2...

Регался так
Прикрепленное изображение

Логинился так
Прикрепленное изображение

А вот с автоматизацией - вообще никак.

Запросы напрямую к скриптам оказалось даже проще, чем написание браузерного плагина:
1.) пощупал форму (узнал какие данные, каким методом и куда с нее отправляются)
2.) написал команду отправляющую данные правильным методом в правильное место
3.) сохранил куки в файл, не забыв ключик для сохранения куков сессии

И заработало! И рега, и сбор, и выплаты - все автоматически. Памяти много не требует, данных передает жалкие килобайты. Ну просто красноглазый праздник какой-то.
Прикрепленное изображение


Местами, конечно, придется порыться в чужом мерзком коде и понять логику "что куда велосипедит". Зато когда все заработает - пойдет профит.
В отличие от браузерного плагина, такую шарманку можно вертеть и на домашнем компе и на сервере, а памяти она занимает жалкие килобайты. :friends:

Если прикрутить быстрые и надежные прокси - будет ваще огонь. Но, с этим пока проблема - Быстрые и надежные прокси бесплатно

wGet или cUrl

cUrl больше подходит для применения внутри php, поэтому я взял wGet и остальное написал на Bash (во имя проф-развития и на зло виндузятникам).

Как написать бота

Какое-то долгое получилось вступление? Зато вы теперь знаете, что браузерные плагины забьют всю память.

Шаг 1 - пощупать поля

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

Если вы писали формы на своих сайтах, сможете пощупать и чужие. Ничего особо нового в этом нет.
Нащупываем в исходнике целевую форму, смотрим куда ведет её action и какой method отправляет данные.
В примере данные шлются методом post на адрес /join
Прикрепленное изображение

Нащупываем все поля формы (логин, пароль, почта и прочее дерьмо). Имя переменной, которая берется из поля определена атрибутом name. Квадратные скобки говорят нам о том, что используется массив.

Переменными
name="user" отправляет на сервер строку user
name="password" отправляет на сервер строку password

Массивом
name="user[login]" отправляет на сервер массив user (в котором есть элемент login)
name="user[password]" отправляет на сервер массив user (в котором есть элемент password)
Прикрепленное изображение


Мерзкий код отнимет у вас трудовое время на подробное прощупывание, ведь в форме могут быть скрытые поля или другие хитрости (для защиты от ботов).
Соберите hidden поля. Может быть все заработает и без них, но на то поля и скрытые чтобы наводить палево на бота.
Прикрепленное изображение


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

У меня получились эти текстовые поля (чем заполнять последнее - не понятно):
type="text" name="user[login]"
type="text" name="user[email]"
type="text" name="user[password]"
type="text" name="required_field_ceb2"

И эти скрытые:
type="hidden" name="timestamp" value="1504270860906"
type="hidden" name="timestamp_secret" value="c7e3837f35f6511a1bdc4173a65c33ac74588fa38afe3fa9e65f495136ef368e"
type="hidden" name="source" value="form-home"


Шаг 2 - составить команду

Запрос без параметров до безобразия прост (можно без кавычек, но я предпочел с ними).
wget "https://github.com/join"

Значения скрытых полей в отправляемые методом post переменные. Перечисление знаком "&" делается. (внутри post-data пробелы добавлены для визуальной читаемости строки, в рабочем варианте пробелов до и после знака "&" быть не должно).
wget "https://github.com/join" --post-data="timestamp=1504270860906 & timestamp_secret=c7e3837f35f6511a1bdc4173a65c33ac74588fa38afe3fa9e65f495136ef368
e & source=form-home"


Теперь туда же добавляем массив user внутри которого строки login, email, password. (пробелы возле знака "&" добавлены для читаемости)
wget "https://github.com/join" --post-data="user{'login':'123','email':'123@123.12','password':'123'} & timestamp=1504270860906 & timestamp_secret=c7e3837f35f6511a1bdc4173a65c33ac74588fa38afe3fa9e65f495136ef368
e & source=form-home"


Чтобы закосить под браузер, нужно добавить юзер агент
wget "https://github.com/join" -U "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5" --post-data="user{'login':'123','email':'123@123.12','password':'123'} & timestamp=1504270860906 & timestamp_secret=c7e3837f35f6511a1bdc4173a65c33ac74588fa38afe3fa9e65f495136ef368
e & source=form-home"

И еще надо бы принять кукисы (их примем в файл cookies.txt)
wget "https://github.com/join" --save-cookies=cookies.txt -U "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5" --post-data="user{'login':'123','email':'123@123.12','password':'123'} & timestamp=1504270860906 & timestamp_secret=c7e3837f35f6511a1bdc4173a65c33ac74588fa38afe3fa9e65f495136ef368
e & source=form-home"


А если куки уже получали и хотим их применить, это делается парой ключей (первый читает из файла, второй поддерживает сессионные куки).
--load-cookies=cookies.txt --keep-session-cookies



Возможные проблемы: кроме отправки данных методом на адрес, нужно добавить юзер-агент и предусмотреть обмен кукисами.

Шаг 3 - поставить на рельсы

Теперь осталось написать "обертку" для циклического выполения, ну или повесить задачу на планировщик Cron.

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

Чтобы не мусорить, можно назначить вывод вникуда (обратите внимание что "o" заглавная)
-O=/dev/null


Итог

Сложный сайт я выбрал для примера. Я так и не понял откуда брать данные для одного скрытого поля, а возиться с ним мне не интересно.

Самая большая проблема

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

Если капча есть только на входе - можно залогиниться вручную (через браузер), затем взять из браузера куки и подставить такой же как у браузера юзер-агент.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
prolisk
prolisk
сообщение 1.9.2017, 17:20; Ответить: prolisk
Сообщение #2


(k0ttee)
для чего его писать

Во-во, и не в плане "зачем", а в смысле "для какого сайта" бота написать, чтобы толк был.

Вообще, все боты сводятся к такому алгоритму:
1) узнал куда данные уходят,
2) узнал название полей
3) отправляешь

Слышал, что в wGet можно много чего интересного делать с сайтами, и оно жрет мало места и ресурсов. Но пока только лендинги им выкачиваю.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 1.9.2017, 17:25; Ответить: k0ttee
Сообщение #3


в wGet можно много чего интересного делать с сайтами

О том и сказ. :D


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
melrok
melrok
сообщение 1.9.2017, 17:29; Ответить: melrok
Сообщение #4


Напиши бота для этого сайта, если делать не фиг, https://vktarget.ru пару лет мы не плохо с него поднимали, пока не изменились интересы.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 1.9.2017, 19:43; Ответить: k0ttee
Сообщение #5


для этого сайта, если делать не фиг

Можно и написать, но туда понадобятся социальные акки (а я ассоциальный сыч).


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
melrok
melrok
сообщение 1.9.2017, 20:15; Ответить: melrok
Сообщение #6


(k0ttee)
(а я ассоциальный сыч)

Мы тоже сычи, поэтому делали фейки заказывали что бы делали.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 1.9.2017, 20:58; Ответить: k0ttee
Сообщение #7


Мы тоже сычи

Тогда мне остается надеяться, что "фейк" не от слова "фея". :hihi:


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
melrok
melrok
сообщение 1.9.2017, 21:36; Ответить: melrok
Сообщение #8


феи делали фейки :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Cognitive Disson...
Cognitive Disson...
сообщение 2.9.2017, 1:14; Ответить: Cognitive Dissonance
Сообщение #9


фейки не проблема
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 2.9.2017, 19:07; Ответить: k0ttee
Сообщение #10


Че-то я приуныл. :( Надо бы заварить чаю. :D
Сварганил на скорую руку бота для говноигры.

[video]https://youtu.be/5i2paEhV-Fg[/video]


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Арбитражники, как ведете учет расходов и доходов?
11 Boymaster 1803 17.4.2024, 23:35
автор: Boymaster
Горячая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
29 freeax 4811 17.4.2024, 1:19
автор: sergio11
Горячая тема (нет новых ответов) Как вы отдыхаете от работы за компом
148 adw-kupon.ru 19709 8.4.2024, 10:37
автор: Skyworker
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
18 uahomka 3102 5.4.2024, 5:53
автор: Skyworker
Горячая тема (нет новых ответов) Как бездомные хранят деньги?
81 metvekot 13655 31.3.2024, 12:44
автор: Boymaster


 



RSS Текстовая версия Сейчас: 19.4.2024, 18:57
Дизайн