Автоматизируй это! Как перестать тратить время на рутину и заставить компьютер работать

Андрей К…
Последнее изменение:
24
1
0

Самый ценный ресурс, который есть у каждого – это время. Оно тикает и утекает с каждой секундой, и восполнить его, увы, нельзя. Поэтому разбазаривать такой ценный ресурс – ну, опрометчиво, что ли.

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

Конечно, программа не напишет за вас хорошую статью и не сможет полноценно общаться в комментариях – но часть задач снимет. Что более приятно – сейчас не требуется учиться много лет и штудировать сотни книг для автоматизации своих задач – достаточно освоить один язык программирования. И это не займет много времени.

Возможно, да и скорее всего, вы не станете крутым программистом, ваш код будет далек от идеала, и в Google работать вас не возьмут – но код будет РАБОТАТЬ, выполнять поставленную задачу, и приносить вам прибыль – да и вообще, вы столько денег отдали за свой компьютер, пускай отрабатывает.

Типичные примеры для автоматизации:

1. Сбор и систематизация информации.

Например, когда мне потребовалось найти сайты на движке Wordpress для SEO-задач, я написал несложный скрипт. Он собирает такие сайты, складывает в базу, и выполняет некоторые задачи с этими сайтами. Сейчас в базе более 2 млн сайтов и пополняется. Без автоматизации я бы не смог собрать такой объем.

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

2. Отслеживание чего-либо.

Например, пока был жив FaucetBox, любой владелец биткоин-крана мог добавить свой кран в каталог на сайте. Мой скрипт отслеживал список, и, если видел появившийся новый кран, проверял его периодичность и размер выплат, после чего обновлял таблицу уже на моем сайте (не на этом). Причем на моем сайте информация о кранах бралась с разных источников, и аккумулировалась в одном месте, в удобном для просмотра виде. Для домашней автоматизации подойдет сбор информации в таблицу Excel.

Отдельный скрипт так же по расписанию проверял доступность кранов – если кран переставал работать, он помечал его в таблице как неактивный, а через какое-то время вносил в черный список. Таким образом, я мог мониторить новые и существующие краны, и предоставлять другим людям актуальные списки (читай, заработок на рефералах и рекламе).

Еще пример отслеживания – бот для Vkontakte, Facebook, Twitter и т.п. К примеру, мой бот в твиттере отслеживал отписавшихся друзей, отписывался от них в отместку, следил за новостями по определенным тематикам и так далее.

Если вы торгуете на фондовой бирже, вам будет полезно отслеживать курсы акций, которыми торгуете или планируете торговать и упоминание в СМИ о компаниях, эти акции выпустившие.

3. Постинг куда-либо

Примеры:

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

Размещение ссылок на ваши сайты в Интернете (так называемое, Черное SEO) – прогон сайта по каталогам, форумам и т.п. За это ушлые челы берут деньги, но никто не мешает делать это самостоятельно (еще и брать за это деньги). Но Черное SEO это отдельная тема для разговора.

4. Торговля на бирже, ставки аукциона и т.п.

Тут все очевидно – ваш скрипт может получать информацию с биржи и создавать/отменять/исполнять отложенные ордера. Может делать заказы на Ebay или Amazon нужных вам товаров за нужную цену – для перепродажи например. Может сразу же выставлять на том же Ebay или Amazon – почему нет?

5.  Выкачивание материалов

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

6. Расчеты, моделирование и испытание

Хотя многие расчеты можно сделать в том же Excel, не всегда это удобно. Например, для тестирования стратегии торгового робота для биржи я скачивал архивы сделок за 5 лет, и с помощью скрипта проверял стратегию – как если бы бот вошел на биржу 5 лет назад и играл по этой стратегии – и смотрел, как меняется благосостояние бота от месяца к месяцу, от года к году.

7. Любая другая рутинная задача, с которой вы столкнулись


Реклама


С чего начать

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

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

Какой язык программирования выбрать?

Тут буду безапелляционен – выбирайте Python  (ссылка на википедию, но там много лишних слов, на мой взгляд).

Почему именно так?

 1. Он универсален – работает как в Windows, так и в Linux, таким образом вы можете писать скрипты на своем компьютере а потом без переделки размещать на сервере, а так же практически любой пример, который вы найдете в интернете, будет у вас работать.

2. Его просто изучить – этот язык программирования изначально задуман простым для изучения, и, к тому же, по нему выпущено много обучающих книг и видеокурсов. Да и русскоязычных сайтов с форумами хватает.

3. Изначально при установке Python поддерживает много всего – как говорится, «батарейки в комплекте». Вам достаточно установить программу себе на компьютер, и начать программировать.

4. Если вам понадобится какой-то изысканный функционал – например, получать информацию с сайта, заполнять Excel, строить диаграммы, итог выгружать в PDF и отправлять результат по почте – вам достаточно установить дополнительные модули и просто запрограммировать действия в нужной последовательности – итоговый скрипт может занимать всего несколько строк кода!

5. Он современный и популярный, и быстро развивается – энтузиасты и сообщество создает готовые библиотеки для работы с соцсетями, для проведения научных расчетов, поддерживается создание графического интерфейса и многое другое – и всё это постоянно обновляется и улучшается.

6. Мало? Ну тогда еще упомяну, что многие крутые компании делают сайты на питоне – например, Instagram написан на этом языке программирования. Еще стоит упомянуть Dropbox, Disqus, сайт и багтрекер компании Mozilla. Этот язык активно используется в Google, Facebook, NASA и Reddit, так же служит скриптовым в программах для 3D графики – лидеров рынка Autodesk Maya, Blender и Houdin. Ну и, конечно же (дайте подмазаться к великим) – сайт bablofil.ru тоже написан на Python!

Как установить и начать использовать?

Тут всё просто – заходим на официальный сайт и скачиваем программу с самой высокой версией ( в моем случае, это версия 3.6.0, кнопка слева). В моем случае качается 32-битная версия программы, но вы можете скачать и 64-битную если планируете обработку больших объемов данных. В любом случае, какую бы вы версию не скачали, она должна работать. У меня, например, установлена и та, и другая – но это специально.

После скачивания запускаем, соглашаясь со всем

На этапе запуска рекомендую поставить обе галочки. Ну и нажать на установку

Ну а потом как обычно – далее, далее, далее, готово! На этом этапе вы установили интерпретатор Python и среду разработки – не вбивайте пока в голову, в общем, вы уже можете программировать.

Так же советую сразу установить модули, которые вам непременно пригодятся для работы в Интернете. Откройте командную строку, напишите там pip install requests и нажмите Enter

Теперь надо написать первую программу – проверить установку и себя

Запускаем программу IDLE – это как блокнот, в котором можно писать и запускать код.

У вас появится окно, в котором можно начинать писать программу. Начнем с простейшей проверки – заставим компьютер писать «hello world». Для того, что бы вывести на экран какую-то информацию используется команда print() – а внутри скобок, пишется то, что надо вывести.

Напечатайте в появившемся окне текст print("hello world") и нажмите F5 – программа предложит сохранить куда-то код, и, после того, как вы его сохраните, она запустится.

Программа отработала и вывела нам наш текст

Значит оно работает, но как-то  это не круто – зачем писать hello world?

Надо написать простую, но полезную программу. Мммм. Пусть это будет расчет денег на вашем банковскому счету через двадцать лет, если каждый год число денег увеличивается на 8%.

Допустим, у вас изначально 10 000 рублей. Напишем эту простую программу.

Открываем снова IDLE, удаляем оттуда print("hello world") и пишем такой код:

# начальный капитал
amount = 10000
# количество лет
years_cnt = 20
# ежегодный процент
year_percent = 8

for i in range(years_cnt):
    amount += amount*(8/100)
    print("Прошло лет:", (i+1), ", на счету теперь: ", amount)

Должно получиться вот так:

Нажимаем F5, сохраняем (если попросит), и наслаждаемся результатом:

Неплохо так, за 20 лет сумма почти в 5 раз увеличилась. Еще бы знать какая будет инфляция :)

Попробуйте погонять этот код – изменить количество лет, процент, стартовую сумму – программировать не так страшно, как поначалу кажется.

Вам, конечно, этот код кажется непонятным и странным, и совершенно неясно, что тут происходит – но это только в начале пути. Для дальнейшего изучения языка я бы посоветовал найти и прочитать книгу Марка Лутца «Изучаем Python» -какое-нибудь из последних изданий. Книга ТОЛСТАЯ, и пугающая – но вам не нужно читать её от и до – вам нужны, по сути, первые главы – что такое переменные, циклы, функции, посмотреть примеры и прорешать задачи. И всё – вы уже можете применять свои знания себе во благо.

Можно посмотреть видеокурсы – но тут советовать не буду, те, которые я видел, были либо для профи в других языках, либо содержали много ненужной информации для новичков. Но тем не менее посмотрите на youtube – обучающих роликов действительно много, ролики в топе – хорошие, но выбирайте те, в которых объясняют понятно для вас. Если даже он пропустит какой-то момент, ничего страшного – найдете информацию  в книге или в другом ролике.

Ну и я планирую в других статьях выкладывать образцы кода для заработка – в том числе и те, что указывал выше в примерах – и подробно объяснять, где что происходит.

Так что следите за новостями на сайте, изучайте новое, совершенствуйте старое, желаю вам удачи в ваших начинаниях! Ну, и как обычно, задавайте вопросы в комментариях, постараюсь ответить всем.

До новых встреч!

Комментарии: (24)
25.06.2017 08:43
Здравствуйте, а для Bittrex его нельзя подправить?
27.06.2017 14:45
Здравствуйте, ответил вам в статье про Эксмо
19.08.2017 09:34
у меня не работает!Андрей может поможете?
01.09.2017 23:55
Без проблем, что именно у вас не работает? Пишите на почту или в фейсбук если что
24.11.2017 16:31
Сделал все как описано, но после нажатия нажатия F5 и сохранения файла возникает ошибка Syntax Error: invalid syntax
25.11.2017 20:41
Добрый день.
Проверьте, может быть где-то лишний пробел или вроде того - причем там, где он сообщает об ошибке, еще обычно пишется и номер строки, где ошибка была замечена.
Так же проверьте, не установлен ли у вас питон второй версии - нужен третий
01.12.2017 23:00
разобрались? такая же проблема, скачал.. установил все по инструкции.. но первый пример  print("hello world") invalid syntax..
01.12.2017 23:45
Sorry, разобрался, просто для тупых, т.е. меня можно в этом примере было написать после запуска idle нажать  new > file и в новом окне писать, а в первом ждать результат... Еще раз сорри, первый раз взялся.. раньше максимум excel пользовался..
24.11.2017 19:00
У меня затык на вот чем

Microsoft Windows [Version 6.1.7601]
(c) Корпорац?я Майкрософт (Microsoft Corp.), 2009. Ус? права захищено.

C:\Users\Тарас>pip install requests
'pip' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\Тарас>
25.11.2017 20:40
Добрый день.
pip (под Windows) обычно устанавливается вместе с питоном, и что бы он запускался, он должен быть доступен из PATH. Доступен оттуда он будет, если вы поставили все нужные галочки при установке питона.
Вам стоит либо переустановить питон, либо найти куда он установился, и указывать полный путь 
например
C:\Users\YOU\AppData\Local\Programs\Python\Python36-32\Scripts\pip.exe install requests
03.12.2017 02:13
Добрый день!
Подскажите а как заставить работать бота на бирже wex?
10.02.2018 12:29
Добрый день!
Для Wex разработан отдельный бот - https://bablofil.ru/bot-dlya-birgi-wex
08.02.2018 09:32
Андрей, огромное спасибо за столь интересный труд. 2 дня, как нашел Ваш сайт. Буду и дальше Вашим подписчиком.
10.02.2018 12:29
Спасибо, добро пожаловать)
05.05.2018 03:34
Добрый день! Андрей, посмотрите пожалуйста , почему у меня запрос выполняется с ошибками:
C:\Users\Anton>pip install requests
Collecting requests
Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken
 by 'NewConnectionError('<pip._uendor.requests.packages.urllib3.connection.uerifiedhttpsconnection at="" object="" oxo34f21f0="">: Failed to establish a new сonnection: [UinError 10057]
 Запрос на отправку или получение данных (when sending on a datagram socket using a sendto call)
 no address was supplied',)': /simple/requests/
Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken
 by 'NewConnectionError('<pip._uendor.requests.packages.urllib3.connection.uerifiedhttpsconnection at="" object="" oxo34f20f0="">: Failed to establish a new сonnection: [UinError 10057]
 Запрос на отправку или получение данных (when sending on a datagram socket using a sendto call)
 no address was supplied',)': /simple/requests/
Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken
 by 'NewConnectionError('<pip._uendor.requests.packages.urllib3.connection.uerifiedhttpsconnection at="" object="" oxo34effb0="">: Failed to establish a new сonnection: [UinError 10057]
 Запрос на отправку или получение данных (when sending on a datagram socket using a sendto call)
 no address was supplied',)': /simple/requests/
Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken
 by 'NewConnectionError('<pip._uendor.requests.packages.urllib3.connection.uerifiedhttpsconnection at="" object="" oxo34efcb0="">: Failed to establish a new сonnection: [UinError 10057]
 Запрос на отправку или получение данных (when sending on a datagram socket using a sendto call)
 no address was supplied',)': /simple/requests/
Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken
 by 'NewConnectionError('<pip._uendor.requests.packages.urllib3.connection.uerifiedhttpsconnection 0x034efe50="" at="" object="">: Failed to establish a new сonnection: [UinError 10057]
 Запрос на отправку или получение данных (when sending on a datagram socket using a sendto call)
 no address was supplied',)': /simple/requests/
Could not find a version that satisfies the requirement requests (from versions:	)
No matching distribution found for requests
C:\Users\Anton>
</pip._uendor.requests.packages.urllib3.connection.uerifiedhttpsconnection></pip._uendor.requests.packages.urllib3.connection.uerifiedhttpsconnection></pip._uendor.requests.packages.urllib3.connection.uerifiedhttpsconnection></pip._uendor.requests.packages.urllib3.connection.uerifiedhttpsconnection></pip._uendor.requests.packages.urllib3.connection.uerifiedhttpsconnection>
29.11.2018 21:06
Андрей поскажите
Поставил Питон 3.7.1 в соотвествии с тем как написали, запустил командную строку и  
pip install requests
Мне в ответ выдает 
File "<stdin>", line 1
SyntaxisError: invalid syntax
 
Ну ладно запускаю Shell
Вбиваю ваш текст и вот:

>>> # начальный капитал
amount = 10000 (строка выделена красным цветом!!!)
# количество лет
years_cnt = 20
# ежегодный процент
year_percent = 8

for i in range(years_cnt):
    amount += amount*(8/100)
    print("Прошло лет:", (i+1), ", на счету теперь: ", amount)
    
SyntaxError: multiple statements found while compiling a single statement
>>> 
Если делать строго по шагам как у вас написано, то какая-то непонятная фигня получается, подскажите что не так (пути ввиде галочки сразу поставил)?</stdin>
30.11.2018 09:30
Смотрите, 
pip install requests
нужно запустить один раз просто в командной строке, без питона, т.е. 
пуск - выполнить - cmd - pip install requests

Насчет ошибки - похоже, где-то неправильно что то записано, не могу воспроизвести, то, что вы пишете тут, работает корректно.
Попробуйте так - запустите Idle, нажмите Ctrl+N (новый файл), вбейте туда текст, сохраните (Ctrl+S) и запустите (F5).
Либо просто руками запишите текст в блокноте, сохраните файл, и выполните
пуск - выполнить - cmd - python путь_к_файлу.py
11.12.2018 20:19
Андрей В вашей статье явно много пробелов не хватает информации по важным моментам! Посмотрите вопрос от пользователя https://bablofil.ru/users/497 
У меня такая же ошибка - не хватает requests и не понятно где его брать:
pip install requests - это не работает!!!

Ответ такой 
Could not find a version that satisfies the requirement requests (from versions:	)
No matching distribution found for requests

Я пытался его скачать, но везде описание а где взять это? Или в чем ошибка? ведь делал строго по вашей инструкции.

Вообще напрашивается страница с описанием (requests, umpy, и другие) и откуда их брать.
Ошибка повторяется уже у 2-х человек - это закономерность, может еще кому-то понадобиться
12.12.2018 09:57
Добрый день,
Спасибо, насчет описания модулей дельная мысль, я постараюсь это расписать.
Насчет ошибки - такое редко случается, например если установлены несколько версий питона, бывает что ставят разной разрядности, может быть такое, что вы находитесь за прокси, например на работе, и админы по безопасности подменяют вам сертификаты.

Попробуйте для начала выполнить команды

pip install --upgrade pip
pip install requests

Или вот так
pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --upgrade pip
pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org requests

Если всё равно requests не установится, попробуйте удалить Python, через удаление программ, если там несколько экземпляров, удаляйте все. 
Скачайте заново (версию 3.7, НО НЕ 2.7), при установке поставьте все галочки, выберите "customize installation", и поставьте все флаги там.

Если и это не поможет, пишите в телеграм, @Bablofil
26.08.2019 15:18
То есть, данный сайт полностью самописный, без фреймворков и библиотек?
02.09.2019 17:28
Фреймворк Django
12.09.2019 19:35
Андрей, приветствую!
БЛАГОДАРЮ за содержательное обучалово!

Вопрос такой:
Поставил я  Python 3.7.4
При выполнении пробных заданий (про банковский счёт  ;)  )  и/или попытке сохранания файла test.py  Выдаёт ОШИБКУ:
"SyntaxError: multiple statements found while compiling a single statement"
на строке amount = 10000  (красная полоса).

Это особенности версии 3.7.4  ?

Как исправить ?
Или писАть в телеграм ?
Продублировал...  ;)
12.09.2019 20:18
Андрей, приветствую!
БЛАГОДАРЮ за содержательное обучалово!




12.09.2019 20:18
Вопрос снят !

СПАСИБО !!!
Пожалуйста, Авторизуйтесь что бы оставить свой комментарий