Пишем Telegram бота на Python 3

  Переглядів 124,369

Oleg Molchanov

Oleg Molchanov

7 років тому

Мои курсы:
Boosty:
boosty.to/omolchanov/posts/99...
Patreon:
/ karty-vsekh-41011404
Пишу простого Telegram бота на Python 3 - при вводе команды бот делает запрос на биржу криптовалют Yobit.net и берет данные о стоимости последней сделки купли-продажи пары BTC/USD (т.е. стоимость одного BTC в долларах США)
Работаем с чистым API Telegram без использования сторонних библиотек типа telepot и прочих.
Очень подробно. Подходит для новичков.
Нужна библиотека requests:
pip install requests
** ИСХОДНЫЙ КОД **
Основных проектов доступен в Patreon:
/ iskhodnyi-kod-26640469
***
------
🔷 Для донатов. Всегда очень признателен за это:
www.donationalerts.ru/r/omolc...
Касты про вебхуки и загрузку бота на хостинг:
• 0. Создание Telegram б... Часть 0 Демка
• 1. Создание Telegram б... Часть 1 Подготовка
• 2. Создание Telegram б... Часть 2 Остальное

КОМЕНТАРІ: 380
@Aipropw
@Aipropw 4 роки тому
очень доходчиво но я накидался пока смотрел
@kpdpok
@kpdpok Рік тому
Отличный темп, тембр голоса и комментарии для новичков. Успевал писать код и смотреть. Не думал, что уроки по программиованию могут доствалять удовольствие от просмтора.
@doprdele
@doprdele 7 років тому
Как всегда - отличное видео ! Все предельно понятно и просто. Прошу - продолжайте в том же духе.
@user-oz6mz3yv2k
@user-oz6mz3yv2k 4 роки тому
Спасибо за урок, Олег! И за подробное объяснение процесса работы!
@user-sk5oi3hi1r
@user-sk5oi3hi1r 6 років тому
Видео просто супер! Большое спасибо, надеюсь будет продолжение по разработке Telegram ботов)
@MaratGabzalilov
@MaratGabzalilov 7 років тому
Олег, спасибо за ваш труд. очень понравился урок. Я на питоне не программировал, но с вашей подачей все становится понятно) Не забрасывайте это дело!)
@SatrialiWASD
@SatrialiWASD 6 років тому
Никогда не было настолько понятно! Автору огромное спасибо!!!
@visualyt
@visualyt 7 років тому
автор молодец! продолжай в том же духе
@user-en2kp2dp2e
@user-en2kp2dp2e 4 роки тому
Олег, огромная благодарность за урок!
@vitaliykhatrus1427
@vitaliykhatrus1427 7 років тому
Отличное видео. Видно, что человек специалист своего дела. Спасибо.
@kozhin
@kozhin 7 років тому
Здорово. Спасибо, что отозвались на мою просьбу. Делайте больше видео по Python 3!!!
@zaemiel
@zaemiel 7 років тому
Да, Сергей, именно благодаря вам он и появился. Забыл только вас упомянуть в ролике :)
@SenichevAlexey
@SenichevAlexey 7 років тому
Спасибо, ждем новых материалов
@Ded5025
@Ded5025 4 роки тому
Спасибо за качественное подробное объяснение.
@mazur_vg
@mazur_vg 2 роки тому
Вааааа!!! Это лучше видео по телеграмм ботам. Спасибо за такой подход в объяснении! Подписался!!!!
@vladthefake
@vladthefake 7 років тому
Хай! Спасибо за видео, мне понравился подход и сами пояснения к коду. Порадовал видео ответ про исходный код, полностью с ним согласен. Также хочу докинуть в копилку просьб видоса, про бота на webhook. В принципе, в инете довольно много примеров, но там много тонкостей, которые негде уточнить, та и выглядят они немного пугающе. В общем, надеюсь продолжение последует :)
@ya-ul9lr
@ya-ul9lr 4 роки тому
Очень позновательно!Спасибо за ролик!
@vladsakun6904
@vladsakun6904 5 років тому
Очень классное видео, помогло, респект создателю👍🏿👍🏿👍🏿
@user-kb3or6go9j
@user-kb3or6go9j 5 років тому
Спасибо! Очень доходчиво и информативно!
@Kurtz_as_a_God
@Kurtz_as_a_God 6 років тому
Однозначно подписка. Доходчиво и понятно!
@user-bl4yl1qh5g
@user-bl4yl1qh5g 4 роки тому
Талант к преподаванию, не останавливайся!
@velomatica
@velomatica 4 роки тому
Как всегда Олег на высоте. Я ваш подписчик и здесь и на патреон и каждый месяц с вами и каждый урок. И не отпишусь, зная что ваши уроки бесценны. Продолжайте пожалуйста не смотря ни на что. Удачи вам и развития. Я ВК на стену кидаю ваши ролики, подписан на патреон и здесь и постараюсь как смогу расширить вам аудиторию. Лайк, репост, подписка и колокольчик. Удачи всем, ребята.
@zaemiel
@zaemiel 4 роки тому
Спасибо большое вам за поддержку и за добрые слова. Всего вам хорошего.
@dmitriianufriev7847
@dmitriianufriev7847 7 років тому
Лютая годнота! Урок по хукам просто необходим! :-)
@zaemiel
@zaemiel 7 років тому
Спасибо. С Webhook-ами сложнее. Телеграм шлет POST запрос с данными, а мы должны его принять и обработать. Словом, для этого нужно на бэкенде использовать что-то вроде Django/Flask... Но я не хочу сейчас начинать эту тему не имея скринкастов по Django и Flask... Поэтому видео до сих пор нет.
@djinni_quizz
@djinni_quizz 5 років тому
Огромноетебе спасибо
@bahus84
@bahus84 5 років тому
Спасибо, отличный урок!
@romeond
@romeond 6 років тому
Отличный урок - жаль нет продолжения по ботам.
@siberianwolf777
@siberianwolf777 3 роки тому
Олег, могу сказать что ты один из самых грамотных программистов, чей код я читал
@avpm05
@avpm05 6 років тому
Cпасибо тебе за урок!
@23112141
@23112141 6 років тому
Спасибо за видео!
@hey-rg9lk
@hey-rg9lk 7 років тому
Спасибо за видео)
@khachatur2000
@khachatur2000 6 років тому
Спасибо большое за урок !
@MrNagios
@MrNagios 6 років тому
Олег, когда продолжение??? Без модулей, на чистом питоне? Как делать вебхуки и т.д., куча вопросов.. продолжайте снимать пожалуйста.
@MadBlissOff
@MadBlissOff 7 років тому
Очень помогло, спасибо
@kogorek1
@kogorek1 7 років тому
Спасибо, очень интересное видео.
@pavlobudiak6935
@pavlobudiak6935 6 років тому
Вывожу значение биткойна в консоль, вижу число в 10 раз больше чем в видео. Думал ошибка, а нет, все верно.
@KABman
@KABman 5 років тому
ofis Auros теперь меньше
@dthamine1931
@dthamine1931 3 роки тому
@@KABman теперь немного побольше)0
@yusufbeky4527
@yusufbeky4527 3 роки тому
@@dthamine1931 немножко))
@user-xx4hx6zr9w
@user-xx4hx6zr9w 6 років тому
Полезные у тебя видео на канале , надеюсь ты будешь снимать ещё
@false_shepherd7446
@false_shepherd7446 4 роки тому
Все очень доходчиво, максимально разжевано. Только хотелось бы внести небольшую ремарку. В случае, если мы ничего не вводим, то в телегу будут постоянно уходить get запросы, т.к. выполнение доходит до последнего блока else и... не доходя до sleep, начинается новая итерация. Насколько понимаю - последний блок else здесь лишний.
@r1zer_official
@r1zer_official 5 років тому
Спасибо за туториал очень помог кстати биткоин 5740 usd 24.04.2019
@incontext8335
@incontext8335 3 роки тому
спасибо!
@aszxpl2186
@aszxpl2186 4 роки тому
Все по полочкам, большое спасибо. UPD: Если у кого-то при запросе к yobit выкидывает ошибку 403, пропишите headers в запросе. Как-то так: headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:73.0) Gecko/20100101 Firefox/73.0'} url = 'yobit.net/api/2/btc_usd/ticker' r = requests.get(url,headers=headers)
@Stefs-2142
@Stefs-2142 4 роки тому
Спасибо, тоже столкнулся с 403.
@LikeShoppingA
@LikeShoppingA 5 років тому
Большое спасибо автору!!! Начало 2019 биток 4322
@user-ls6tf3er7w
@user-ls6tf3er7w 6 років тому
можно вместо глобальной переменной - создать изменяемый тип данных (например список) и менять его из функции и в принципе global дважды объявлять не нужно, можно только в самой функции, а в целом очень интересно и познавательно. Спасибо за ваше видео)
@zaemiel
@zaemiel 6 років тому
еще как вариант создать глобальный словарь, который хранил бы это общее состояние
@matweyrybakovskiy2952
@matweyrybakovskiy2952 2 роки тому
Биткоин по 925 долларов......... Привет из октября 2021, BTC/USDT 50 000 А видео просто огонь. Очень хорошее объяснение. Спасибо!
@VakulaEugen
@VakulaEugen 5 років тому
Огромное спасибо за видео). Но есть одна проблема, решения которой не могу найти. Возможно ли создание команды (к примеру /hello), которая будет отправлять текст (/hello) и в то же время подставлять новый текст в поле набора, но БЕЗ его отправки?
@gregoryjenferd9740
@gregoryjenferd9740 6 років тому
Отличный урок, вы очень помогли) Скажите, пожалуйста, что за расширение используется для компиляции кода в новой вкладке(ctrl+1).
@zaemiel
@zaemiel 6 років тому
Для этого я использую плагин SublimeREPL. О том, как его настроить я записывал каст. Посмотрите, пожалуйста, в плейлистах.
@user-me2qj8de9v
@user-me2qj8de9v 6 років тому
классное видео. запишите видео с webhook или inline
@user-bk1ns2fd1l
@user-bk1ns2fd1l 6 років тому
Добрый день. Подскажите пожалуйста как сделать кнопку (или сообщение) такую же как у бота rutracker? Т.е. при нажатии на которую копируется её содержимое (магнет ссылка).
@tahirjalilov
@tahirjalilov 5 років тому
Добрый вечер, Спасибо Вам за этот вебинар. Благодаря этому видео я написал себе первого бота ))) Только у меня возникла проблема. Мой бот входит в аккаунт юзера на одном сайте и тыкает там по ссылкам, если одновременно ботом пользуются несколько человек, то все сбивается. Многопоточность я не использовал ввиду того что мало проинформирован. Не знаю как решить эту проблему, некоторые советуют гуглить в сторону FMS , но мне показалось это трудно реализовать. Посоветуйте пожалуйста, очень жду ответа.
@user-qw7qh5tz2t
@user-qw7qh5tz2t 4 роки тому
Ееее! Мятный линукс! Я только сейчас заметил, что не все Ютуб кодеры на окнах сидят
@surisua16
@surisua16 4 роки тому
Все очень круто! Только можно как-то не использовать глобальную переменную?
@Keriokutori
@Keriokutori 3 роки тому
Жаль, что Вы больше не выпускаете видео, у Вас талант разжевывать все новичкам!
@sergeyanalyst7134
@sergeyanalyst7134 Рік тому
У него есть англоязычный канал - red eye coder club
@Keriokutori
@Keriokutori Рік тому
@@sergeyanalyst7134 спасибо большое, поищу!
@group_ed
@group_ed 3 роки тому
круто
@nordost8
@nordost8 4 роки тому
Привет, сделай пожалуйста новое видео по созданию асинхронного бота для телеги или вк
@user-li5ls7gu5z
@user-li5ls7gu5z 6 років тому
_Добрый день, Олег. Скажите, можно ли сделать бота, который загружал бы в канал фотографии?_
@victoriaorlik9087
@victoriaorlik9087 5 років тому
Привет, а можно создать бота для поиска турпутевок? Типо вбиваешь запрос на страну и рейтинг гостиницы и выдает результаты гостиниц?
@uten1992
@uten1992 6 років тому
Отличный материал! Про webhook как я понимаю видео не будет?
@zaemiel
@zaemiel 6 років тому
Почему же не будет. Будет. Но не сразу.
@lilvarlos5257
@lilvarlos5257 4 роки тому
а что делать, если в строчке text = answer['text'] (42:38), пишет ошбку,типо понятие text нигде не используется
@dEAdYANGX
@dEAdYANGX 6 років тому
Привет. Как сделать что бы бот не ложился от стикеров?
@denchik_797
@denchik_797 2 роки тому
Подскажи, пожалуйста где можно взять документацию с примерами, а то кучу сайтов перерыл и не могу понять как отправить видео, фото или банальный стикер. Если ты знаешь как можешь подсказать пожалуйста, я буду очень сильно признателен)
@MrTemperator
@MrTemperator 7 років тому
Отличное видео, привет из апреля 2017 где биткоин стоит 1225)
@drewya9186
@drewya9186 7 років тому
эх вспомнить бы сейчас тюльпановый пузырь 1636 года
@user-sp3ww8wf6r
@user-sp3ww8wf6r 6 років тому
2732
@Timur_Kan
@Timur_Kan 6 років тому
09.08.2017 3.3204$
@ramilb.252
@ramilb.252 6 років тому
Суббота, 26/08/2017 1 BTC = 4 364.46891 USD
@noangelnoangel
@noangelnoangel 6 років тому
пару дней назад перевалил за 5000, правда чуть чуть обратно откатился потом :-)))
@MrNagios
@MrNagios 6 років тому
57:06 Олег, вот вы здесь сказали в каком случае лучше писать классы, не могли бы вы развить эту тему и описать, когда и для чего писать классы, ну и советы по написанию были бы к месту. Давно не делаете видосы, наверное заняты?
@zaemiel
@zaemiel 6 років тому
Да, я занят, к сожалению. Классы нужно делать, когда есть какие-то общие состояния. Если у вас возникает желание сделать какую-нибудь глобальную переменную, то это означает, что у вас появилось какое-то общее состояние, которое нужно где-то и как-то хранить. Класс тут будет весьма кстати. Если общих состояний нет, то классы - нафиг не нужны. Это в общем и целом. Но все также зависит от контекста задачи и от самого проекта.
@user-iq6uq4lx3l
@user-iq6uq4lx3l 4 роки тому
Петру Егорову! Запустил как у тебя по мануалу --- Дошёл вот до сюда : Прежде чем пытаться подключиться, вам нужно выполнить несколько дополнительных команд В терминале введите следующие команды: sudo ausearch -c 'openvpn' --raw | audit2allow -M my-openvpn и сразу беда, у меня Manjaro Linux в терминале вываливается ошибка : command audit2allow not found ---- пробывал устанавливать policycoreutils не помогло какой есть аналог audit2allow ---- вроде всё перелопатил не нашёл --- если можно помоги советом
@99phenomenon
@99phenomenon Рік тому
збс!
@user-qx7rf5lg9p
@user-qx7rf5lg9p 6 років тому
почему в Pycharm не запускает скрипт(типа как тут СTRL+1
@evrisovllc2382
@evrisovllc2382 4 роки тому
Здравствуйте Олег. я попытался получить прогноз погоды, и в консоль Pycharm выводятся значения .... но в телеграмм передаётся как "None" сможете помочь?
@tsoer2976
@tsoer2976 4 роки тому
Когда смотрю на цены 925 долорав глаза заливает слезами. ЗА видио спасибо. Если еще будет что подобное то советую записать про виртуальную среду то иногда вылетает ошибка
@zaemiel
@zaemiel 4 роки тому
Я не понял ваш совет.
@tsoer2976
@tsoer2976 4 роки тому
@@zaemiel Запиши видео как правильно делать виртуальную среду, для чего это нужно и так далее.
@zaemiel
@zaemiel 4 роки тому
уже есть такое видео
@ColorCar161
@ColorCar161 5 років тому
Здравствуйте! Делаете ли вы ботов на заказ?)
@user-ze4ux6vh3k
@user-ze4ux6vh3k 4 роки тому
Я столкнулся с ошибкой на 47:51 минуте. Ругается на json. Если убрать из строки .json() и оставить r=requests.get(url), по пишет ответ 403. А с r=requests.get(url).json() выводит следующее: Traceback (most recent call last): File "D:\work\Python\telegram bot\yobit.py", line 12, in get_btc() File "D:\work\Python\telegram bot\yobit.py", line 6, in get_btc response = requests.get(url).json() File "C:\Python36-32\lib\site-packages equests\models.py", line 892, in json return complexjson.loads(self.text, **kwargs) File "C:\Python36-32\lib\json\__init__.py", line 354, in loads return _default_decoder.decode(s) File "C:\Python36-32\lib\json\decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Python36-32\lib\json\decoder.py", line 357, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) [Finished in 1.0s]
@uzb_fun_club2522
@uzb_fun_club2522 6 років тому
Как сделать реф. систему
@sigurds5599
@sigurds5599 2 роки тому
Скажите пж это подходит для начинающих?
@user-ir8nd6mj2b
@user-ir8nd6mj2b 5 років тому
А... Можно бота для Дискорда написать таким же образом?
@GGEASY56
@GGEASY56 4 роки тому
держу в курсе) 2k19 август) 10к стоит биток)
@frederickofrancheski8401
@frederickofrancheski8401 3 роки тому
Уже 50
@arseniykhomchenko
@arseniykhomchenko 5 років тому
почитал предыдущие комментарии и решил подключить к боту прокси. Но возникла проблема: нигде не могу найти прокси с протоколом HTTPS. Подскажите, пожалуйста, кто знает, где найти. Видел, что HTTP тоже подходит, но у меня все же не работает и выдает ошибку: [WinError 10061] Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение
@man-jj7rc
@man-jj7rc 6 років тому
Как вытянуть графики с бирж?
@user-dg4rg3rk7k
@user-dg4rg3rk7k 5 років тому
Днём всё работало, а вечером внезапно всё поломалось, при запуске бота на исполнение появилось OSError: [Errno 107] Transport endpoint is not connected В чём причина такой ошибки?
@fedorzavs2351
@fedorzavs2351 6 років тому
Помоги пожалуйста.При проверке на 1:03:29 выдает ошибку: File "bot.py", line 35 message_text = last_object['message']['text'] ^ TabError: inconsistent use of tabs and spaces in indentation все отступы перепроверил по несколько раз и также несколько раз сверился с вашим образцом по правильности написания,все в точности совпадает.Как решить эту проблему и может ли эта ошибка быть из за самого интерпритатора?
@zaemiel
@zaemiel 6 років тому
нужно еще раз все проверить. Выделить весь текст, использовать команду типа Convert to spaces (она есть во многих редакторах), еще раз проверить отступы в логических блоках - 4 пробела на отступ.
@fedorzavs2351
@fedorzavs2351 6 років тому
Большое спасибо,помогло.
@fedorzavs2351
@fedorzavs2351 6 років тому
Привет,спасибо за видео.Есть вопрос, почему то когда получаю пакет обновлений json там в графе text: не отображаются сообщения на русском,а вместо них непонятные символы.Подскажи пожалуйста как это можно исправить?
@zaemiel
@zaemiel 6 років тому
Какой у вас Python? Попробуйте явно указать кодировку: json.dump(d, file, indent=2, ensure_ascii=False).encode('utf-8')
@imgnl
@imgnl 6 років тому
Олег, когда про вебхуки росскажите?)
@zaemiel
@zaemiel 6 років тому
Как только - так сразу
@KirillFox
@KirillFox 6 років тому
Сильно ждем!!
@erikshaydulin8272
@erikshaydulin8272 6 років тому
Если у кого не создается файл updates.json на Windows, когда вы запускаете с консоли бота, зайдите в командной строке в папку с проектом и оттуда запускайте командой cd C:/местоПапкиСБотом/ и потом запускаем по имени bot.py
@user-ml5pt7ct4z
@user-ml5pt7ct4z 6 років тому
как справа столбец добавить ?
@yanagaeify
@yanagaeify 7 років тому
Ребята, если кто на линуксе работает, то запускайте sublime через sudo на терминале или дайте ему права суперпользователя, иначе не создаст вам файл "updates.json".
@aslanaslan4394
@aslanaslan4394 4 роки тому
А как на телефоне?
@aslanaslan4394
@aslanaslan4394 4 роки тому
Все уже нашел, спасибо
@igorfogov5617
@igorfogov5617 4 роки тому
Олег, Вы какой ВПН использовали? Для обхода блокировок
@zaemiel
@zaemiel 4 роки тому
никакой... у меня все работало и сейчас прекрасно работает
@guiseppemavriki376
@guiseppemavriki376 6 років тому
Можешь показать видео с кнопками ReplyKeyboardMarkup? пожалуйста
@guiseppemavriki376
@guiseppemavriki376 6 років тому
отбой, сделал, спасибо
@alexeynikashin8754
@alexeynikashin8754 5 років тому
Всё шло прекрасно до 39:52 когда автор вызвал сообщение бота из телеграмма. последняя введенная строка send_message(chat_id, "Что ты хочешь на ужин?") После этого сессия проходит без ошибок, но ничего не выводится и сообщение не приходит. Не могу понять, в чём ошибка.
@alexeynikashin8754
@alexeynikashin8754 5 років тому
Всё заработало. Ошибка, как обычно, в недосмотре одного символа. Пришлось всё проверить посимвольно глазами )
@vicodin9783
@vicodin9783 4 роки тому
Скажите, почему после всех манипуляций с кодом, Ваш бот начал выдавать одно и тоже значение 929??? Куда делась волатильность рынка? Бот случайно не запомнил какое-то последнее валидное значение и "херячит" его на каждый запрос? У меня тоже самое получается. Почему так?
@zaemiel
@zaemiel 4 роки тому
потому что CoinMarketCap - это не биржа. И никаких ежесекундных обновлений цен на нем никогда не было и не будет. По-моему, это очевидно.
@user-en2kp2dp2e
@user-en2kp2dp2e 4 роки тому
Еще раз привет из 2020) У меня возникала ошибка UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-6: ordinal not in range(128) в строке json.dump(d, file, indent=2, ensure_ascii=False), Проблему решил переключением версии питона в ОС по умолчанию с версии 2 на 3. ОС: Ubuntu 18.04. Как переключать, написано вот здесь netpoint-dc.com/blog/switch-python2-to-python3-ubuntu-18-04/
@liloo_portal
@liloo_portal 5 років тому
День добрый. Спасибо за видео, только есть вопрос. Я написал скрипт который парсит объявления с сайта и отправляет в телеграмм. Только загвоздка в том что он отправляет нижнее объявление а не верхнее, точнее нужно 6-ое объявление. Плюс что надо изменить в коде , чтоб он отправлял автоматически каждые 2 секунды,если появилось новое сообщение, ато он не хочет этого делать, только если перезапускать скрипт или написать что нибудь в телеграме pastebin.com/pAYTMgcE
@zaemiel
@zaemiel 5 років тому
эта версия бота не годится для продакшена и я об этом прямо говорил в этом видео. В описании к видео есть более или менее нормальная версия бота. 1. У вас есть список L из четырех элементов. Как получить 2-й элемент? 2. Бот должен работать по запросу пользователя.
@mazur_vg
@mazur_vg 2 роки тому
Если у кого под Windows будет ошибка при создании json.dump следующего содержания: "UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f489' in position 7: character maps to ", то нужно явно указать для открытия файла "encoding='utf-8'", то есть должна быть запись вида "with open("updates.json", "w", encoding="utf-8") as file:"
@EzioPoi
@EzioPoi 5 років тому
Привет! А как на Sublime text установить библиотеку requests? У меня говорит ModuleNotFoundError: No module named 'requests'
@zaemiel
@zaemiel 5 років тому
Sublime Text совершенно здесь не причем. Это библиотека Python. Загляните в описание к видео - там все есть.
@legithubru
@legithubru 5 років тому
можно поподробнее про if __name__ == '_main__': main()?
@zaemiel
@zaemiel 5 років тому
ukposts.info/have/v-deo/m4eQYbB-fmqWx2g.html
@liloo_portal
@liloo_portal 5 років тому
А как можно сделать, чтоб бот парсил не биржу криптовалют , а постоянно парсил новые объявления на сайте? Например взять сайт на котором люди выкладывают объявления по продаже какой нибудь продукции и как только появилось новое объявление , автоматом приходило оповещение в телеграмм.
@zaemiel
@zaemiel 5 років тому
Если коротко, то точно также. Берете пишете парсер нужного сайта, потом пишете бота, потом вместе соединяете. И готово. А если не коротко, то в комментариях это не опишешь.
@liloo_portal
@liloo_portal 5 років тому
Видео бы было первым =)
@romanmaistru242
@romanmaistru242 7 років тому
misc не ставится почему-то. Collecting misc Could not find a version that satisfies the requirement misc (from versions: ) No matching distribution found for misc
@zaemiel
@zaemiel 7 років тому
misc - это название питоньего файла, который лежит в папке со скриптом. из него я импортировал нужную переменную. Я не знаю, как вы делаете, но если это не работает, то просто объявите переменную с токеном в теле скрипта (без импортирования)
@romanmaistru242
@romanmaistru242 7 років тому
сорри...тупанул)
@agrun4070
@agrun4070 6 років тому
Не надо было писать else: continue, так как ты пропускаешь вызов sleep() и бот жестко спамит сервера telegram, рискую получить таймаут
@user-fk3gy5qg5c
@user-fk3gy5qg5c 6 років тому
Написал бота ,с помощью библиотеки telegram ,выложил на heroku ,но спустя 1 минуту бот перестаёт отвечать на сообщения.Подскажите,пожалуйста,как исправить?
@aslanaslan4394
@aslanaslan4394 4 роки тому
За год, нашел ошибку?
@anotherspy3385
@anotherspy3385 5 років тому
Привет из 11.12.18. К сожалению (очень большому) на сегодняшний день этот сайт (yobit.net) заблочил РКН. Конец сообщения, все =D
@Mr1987MAD
@Mr1987MAD 6 років тому
Здравствуйте! Спасибо за урок. Я новичок в этом деле. Не могу разобраться: с того момента, как прописали with open('updates.json','w') as file: json.dump(d, file, indent=2, ensure_ascii=False) и я отправил боту в чат сообщение на русском, то в файл updates.json записались следующие строки: { "message": { "date": 1507724006, "text": и далее уже ничего не записывается. В чем проблема может быть? Если через консоль запускать, то выдает ошибку UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-7: ordinal not in range(128)
@zaemiel
@zaemiel 6 років тому
Добрый вечер, 1. Какая у вас операционная система? 2. Какой у вас редактор? 3. Работает ли код в консоли? 4. На какую строку ссылается traceback, где ошибка? Приведите, пожалуйста, кусок этого кода.
@Mr1987MAD
@Mr1987MAD 6 років тому
1. Windows 7 Professional 32bit 2. Sublime Text Version 3.0 Build 3143 3,4. Пишет следующее: C:\Python27>python.exe C:\Python27\bot.py Traceback (most recent call last): File "C:\Python27\bot.py", line 32, in main() File "C:\Python27\bot.py", line 28, in main data = json.dump(d, file, indent=2, ensure_ascii=False) File "C:\Python27\lib\json\__init__.py", line 190, in dump fp.write(chunk) UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-7: ordinal not in range(128) если в коде заменить json.dump(d, file, indent=2, ensure_ascii=False) на json.dumps(d, file, indent=2, ensure_ascii=False).encode('utf-8'), то всё работает
@zaemiel
@zaemiel 6 років тому
Хорошо, что разобрались. Это отлично. Python 2.7 по дефолту не знает, что такое Unicode, поэтому вылезло такое исключение, пока вы ему явно не указали, что это юникодная строка.
@user-en2kp2dp2e
@user-en2kp2dp2e 4 роки тому
у меня ошибка была из-за того, что по умолчанию стояла версия питона 2.7. Переключение на версию 3 помогло решить проблему. ОС: Ubuntu 18.04
@harrison86985
@harrison86985 4 роки тому
16:04 Не импортируется токен, все точно как в видео. Возможно что-то настроить нужно в ST? Ничего не пойму надеюсь на Вашу помощь
@zaemiel
@zaemiel 4 роки тому
Вам нужно повторять все как на видео. Файл с токеном - это питоний файл с расширением .py Если вы пользуетесь виндой, то проверьте в настройках проводника - отображение расширений у файлов. Дело в том, что винда лучше своих пользователей знает, какое расширение файлов ставить, и дописывает в конец файлов .txt
@harrison86985
@harrison86985 4 роки тому
@@zaemiel у меня ubuntu 18.04, файлы misc.py и bot.py создавал через терминал/ вместо импорта у меня сохраняется еще один файл bot.py на рабочий стол, оно же само собой импортируется в соседнее окно ST после сохранения?. Так же в папке bot не создается файл updates.json но это наверное вытекающая из первой проблемы.
@zaemiel
@zaemiel 4 роки тому
какой Python вы используете? напишите и выполните import sys print(sys.version)
@artkash6355
@artkash6355 4 роки тому
@@zaemiel у меня такая же беда
@artkash6355
@artkash6355 4 роки тому
разобрались? у меня тоже самое
@Victorius-ua
@Victorius-ua 6 років тому
Бот всегда берет ПОСЛЕДНЕЕ сообщение. Пока он будет обрабатывать текущее, а придет новых 5, то он обработает только последнее, а 4 остануться не обработанными. И второе - отсылается запрос на внешний АПИ по запросу курса валют, а это операция с большой временной задержкой. Такое "решение в лоб" приведет к жутким тормозам на продакшене, или вообще к неработоспособности, когда начнуться хоть малейшие нагрузки
@zaemiel
@zaemiel 6 років тому
ну, если вы вдруг досмотрели до конца, то, я уверен, вы слышали, что я прямо сказал, что это решение нельзя использовать на продакшене.
@Victorius-ua
@Victorius-ua 6 років тому
Да, услышал, спасибо)
@TheMul4
@TheMul4 5 років тому
пишу из ноября 2018, у нас биток с 6.5к упал до 3.7... держитесь там в будущем!
@cucumber3925
@cucumber3925 5 років тому
Закупайся братик!жалеть в будущем будешь)
@TheMul4
@TheMul4 5 років тому
@@cucumber3925 ты из будущего пишешь? ;-)
@itpigeon751
@itpigeon751 4 роки тому
@@TheMul4 Надо было брать... Он сейчас 12к$
@user-jz3sc6wr9s
@user-jz3sc6wr9s 4 роки тому
@@itpigeon751, оуууу ееее)))
@TheMul4
@TheMul4 3 роки тому
@@cucumber3925 уже жалею, продал по 6к когда был, сейчас он на 58к стрелял)), глупцы закупайтесь как упадет!
@datod1789
@datod1789 5 років тому
вот такая ошибка пояляется Traceback (most recent call last): File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 601, in urlopen chunked=chunked) File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 346, in _make_request self._validate_conn(conn) File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 852, in _validate_conn conn.connect() File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 326, in connect ssl_context=context) File "/usr/lib/python3/dist-packages/urllib3/util/ssl_.py", line 329, in ssl_wrap_socket return context.wrap_socket(sock, server_hostname=server_hostname) File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket _context=self, _session=session) File "/usr/lib/python3.6/ssl.py", line 814, in __init__ self.do_handshake() File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake self._sslobj.do_handshake() File "/usr/lib/python3.6/ssl.py", line 689, in do_handshake self._sslobj.do_handshake() ConnectionResetError: [Errno 104] Connection reset by peer During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/requests/adapters.py", line 440, in send timeout=timeout File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 639, in urlopen _stacktrace=sys.exc_info()[2]) File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 357, in increment raise six.reraise(type(error), error, _stacktrace) File "/usr/lib/python3/dist-packages/six.py", line 692, in reraise raise value.with_traceback(tb) File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 601, in urlopen chunked=chunked) File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 346, in _make_request self._validate_conn(conn) File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 852, in _validate_conn conn.connect() File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 326, in connect ssl_context=context) File "/usr/lib/python3/dist-packages/urllib3/util/ssl_.py", line 329, in ssl_wrap_socket return context.wrap_socket(sock, server_hostname=server_hostname) File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket _context=self, _session=session) File "/usr/lib/python3.6/ssl.py", line 814, in __init__ self.do_handshake() File "/usr/lib/python3.6/ssl.py", line 1068, in do_handshake self._sslobj.do_handshake() File "/usr/lib/python3.6/ssl.py", line 689, in do_handshake self._sslobj.do_handshake() urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/david/bot/bot.py", line 54, in main() File "/home/david/bot/bot.py", line 48, in main answer=get_message()#49 File "/home/david/bot/bot.py", line 22, in get_message data=get_updates()#30 visivaem obect get obdate, poluchaem packet json i zapisivaem v peremennuiu data File "/home/david/bot/bot.py", line 16, in get_updates r=requests.get(url)#13 sozdaem peremennuiu kotor budet sohranat otvet servera File "/usr/lib/python3/dist-packages/requests/api.py", line 72, in get return request('get', url, params=params, **kwargs) File "/usr/lib/python3/dist-packages/requests/api.py", line 58, in request return session.request(method=method, url=url, **kwargs) File "/usr/lib/python3/dist-packages/requests/sessions.py", line 520, in request resp = self.send(prep, **send_kwargs) File "/usr/lib/python3/dist-packages/requests/sessions.py", line 630, in send r = adapter.send(request, **kwargs) File "/usr/lib/python3/dist-packages/requests/adapters.py", line 490, in send raise ConnectionError(err, request=request) requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) >>>
@podi1555
@podi1555 5 років тому
VPN стоит?
@garrygaller2853
@garrygaller2853 6 років тому
Привет из декабря 2017-го. BTC по курсу coindesk.com на 08.12.2017 = $15278,5
Уроки C# - Создаём Telegram бота
28:33
XpucT
Переглядів 88 тис.
Создаем свое ANDROID приложение на PYTHON
13:55
Чёрный Треугольник
Переглядів 195 тис.
顔面水槽がブサイク過ぎるwwwww
00:58
はじめしゃちょー(hajime)
Переглядів 75 млн
Алгоритмы на Python 3. Лекция №1
1:20:50
Тимофей Хирьянов
Переглядів 5 млн
НЕЙРОСЕТЬ своими руками за 10 минут на Python
11:10
Хауди Хо™ - Просто о мире IT!
Переглядів 1 млн
OpenAI GPT-4o | First Impressions and Some Testing + API
13:12
All About AI
Переглядів 4,7 тис.
Как устроен Python? ► Детальный разбор
11:05
Хауди Хо™ - Просто о мире IT!
Переглядів 579 тис.