Задать вопрос
@stamdyscias

Какую книгу по програмированию/ресурсы выбрать чтоб в последующем писать скрипты/ботов/автокликеры?

Привет всем, как вы поняли и вопроса нужна подобная книга/ ресурс, да и какой язык для этого более подходит? Первый пример который приходит в голову, это чтобы этот скрипт набирал определенное слово в поисковике и переходила потом по ссылке. Вот такого типа я и хочу делать скрипты. Если кто-то подскажет как и такое осуществить заранее благодарю.
  • Вопрос задан
  • 426 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 2
saboteur_kiev
@saboteur_kiev
software engineer
Подучи html и принцип работы http, а также что такое api
Затем бери любую книгу по python или perl и пиши скрипты.
Можно взять любой готовый автокликер, какой-нить AutoIT или ACTools и писать в нем готовый скрипт, но это для совсем простых вещей.
Ответ написан
@VZVZ
Reverse-Engineer, Software Developer, Architect
Именно автокликеры как таковые - это очень просто, пишется почти на любом ЯП, но они фигня полная.
Медленно, неудобно в использовании, ведь на экране все время окошки мелькают, а главное - криво (программно очень сложно определить, когда уже появилось окошко, а когда нет, и тем более сложно определить, если это не окошка, а элемент на веб-странице, который еще и подгружается не сразу же.

А вот реальное ботостроение - это почти что хакерство, а иногда и натуральное хакерство, соответственно никаких книг нет, и методология обучения должна быть практически-экспериментальной, иначе ничего не получится.

Начинать действительно стоит с HTTP/HTTPS (это протокол, по которому работает 99,(9)% сайтов и немало приложений),
Суть здесь в том, что клиентская часть при определенных действиях юзера делает запросы к серверной, вот эти запросы мы сперва вручную перехватываем, затем на любом ЯП имитируем их отправку.
Для перехвата (это исследовательская часть работы - Research) понадобится сниффер Fiddler. А для отправки запросов (Development) - почти любой ЯП годится, но под виндой лучше C# либо Delphi.
Подробнее:
https://otvet.mail.ru/answer/1794591622
Отмечу, что этот вариант подходит и для сайтов с AJAXом, коих сейчас очень много.
Советую также изучить AJAX, ведь не умея самому сделать такую архитектуру, вы и с чужим сайтом не разберетесь. Статья по AJAX:
codeproject.com/Tips/1065669/How-To-Build-Web-Site...
Все же здесь имеются и нюансы, например, приложение может работать через свой прокси, что затрудняет перехват запросов Fiddlerом, или же это вообще приложение под мобильную ОС, где снифферов толком нет. В целом все это обходится, любому приложению можно задать фиддлеровский прокси, приложения для Android запускаются на Genymotion опять же с прокси и т.д.

НО! Не стоит ограничиваться HTTP/HTTPS.
Почему?

1. Некоторые сайты работают по протоколу TCP (голые сокеты, это ниже уровнем, чем HTTP/HTTPS). Fiddler не покатит.
Чтобы понять эту архитектуру, и поэкспериментировать с протоколом, советую освоить NodeJS и socket.io - это лучший способ создать свой простенький сайтик с TCP и использовать его как полигон для изучения TCP и написания первого своего бота такого уровня. В качестве сниффера здесь Wireshark, он сложнее и не столь удобен, но можно и с ним справиться.
Еще бывает протокол RTMP (но это уже с Flashем, на чистом JS не бывает), там вроде Adobeовский какой-то бек-енд, тоже надо освоить так же, как и TCP. В качестве сниффера - Wireshark годится вроде.
А самый абзац - это клиентские приложения. Вроде Skype, Viber, WhatsApp и т.д. Приложение в отличие от сайта может юзать вообще какие-то редкие протоколы или вовсе свой протокол, из них вроде XMPP самый простой и открытый, с этим сам пока не разбирался.

2. На некоторых сайтах вроде бы HTTP/HTTPS и все понятно.
Но всего слишком много. Просто слишком много. Слишком много запросов на одно действие, слишком много параметров запросов, слишком много куков. Например, гугловские сервисы славятся этим.
Все это имитировать HTTP-запросами реально устаешь, а если хоть что упустишь, то это потенциальная проблема (а боты и так периодически ломаются, когда бек-енд меняется)
В ряде случаев лучше взять PhantomJS (можно через CasperJS), это браузерный движок, но не простой, а специально для таких целей. Он представляет почти весь функционал, какой нужен. Боты получаются не столь быстрые, как на голых HTTP-запросах (которые, очевидно, даже быстрее человека с браузером), и все это на NodeJS (под виндой это скорее недостаток, чем достоинство, лучше бы C#, хотя можно и PhantomJS прикрутить к C#, но криво), но зато боты более стабильные выходят (гораздо более похожие на реальный браузер с гораздо меньшими усилиями по имитации), и пишутся быстрее.

P.S. Профессиональный ботовод, бюджет иных проектов составлял 5-значные числа.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы