Всем привет. Я пишу бота, который бы помогал пользователю получать необходимую информацию по заданному номеру.
Вот у меня есть файл формата CSV.
Жаль, что не могу вставить файл.
Первичный ключ является столбец number.
То есть пользователь будет вводить только номер.
Благодаря этому номеру он получает сообщения name, descript, site а также фотографию, которая загрузится по ссылке.
Это можно сделать, чтобы не вбивать подобный код:
import telebot
from telebot import types
token = 'Здеся мой токен'
bot= telebot.TeleBot(token)
@bot.message_handler(commands=['start'])
def start(m):
msg=bot.send_message(m.chat.id,
'''Вас приветствует whorsash''')
logotip = open('C:\\Users\\user\\logo.png', 'rb')
bot.send_photo(m.chat.id, logotip)
messg=bot.send_message(m.chat.id,
'''Для поиска информации введите номер''')
bot.register_next_step_handler(messg, name)
def name(t):
#101
if t.text == '101':
bot.send_message(t.chat.id,
'''Тачка''')
n101 = open('http://arshin48.ru/upload/iblock/717/sad.tachka-nv-1302.jpg', 'rb')
bot.send_photo(t.chat.id, n101)
bot.send_message(t.chat.id,
'''Тачка садовая, элегантная''')
bot.send_message(t.chat.id,
'''http://arshin48.ru/catalog/27657/915202/''')
#301
elif t.text == '301':
bot.send_message(t.chat.id,
'''Бабки''')
n301 = open('http://g4.nh.ee/images/pix/1000x654/yEP_eSREsiY/6cce0564d8f9c9b73f-72993621.jpg', 'rb')
bot.send_photo(t.chat.id, n301)
bot.send_message(t.chat.id,
'''2 билета на концерт новых русских бабок''')
bot.send_message(t.chat.id,
'''http://mail.ru''')
else:
bot.send_message(t.chat.id,
'''Упс... Такого номера у нас нет...
повторите ввод''')
bot.polling(none_stop=True, interval=0)
Это вот так в лоб можно пойти, но у меня номеров свыше 1000, есть варианты?
Научите меня парсить и понять эту процедуру, а также с циклом объясните и научите.
Да, я гуглил, про парсинг не очень понял. Про цикл надо вчитываться.
Просто пытаюсь сделать так, чтобы бот не останавливался, а при повторном вводе выдавал информацию, а мне приходится вводить /start в телеграме, чтобы бот снова заработал. Это относится к циклу, я так понимаю.
И чтобы парсить, тоже надо использовать цикл.
Есть какое-нибудь решение?