Как заставить телеграмм бота работать одновременно на нескольких аккаунтах?
я написал парсер и хочу чтобы взаимодействие с ним происходило через telegram бота. в парсере есть некоторые настройки, которые должен вводить пользователь. Я написал бота и все работает, но только если ботом пользуется одновременно только 1 человек, так как если второй пользователь бота изменяет переменные устанавливая настройки парсера, то они меняются и у первого пользователя.
import telebot
from telebot import types
from bs4 import BeautifulSoup
import requests
import re
bot=telebot.TeleBot('2146604141:AAG6DH6tzjF6eVW5MO_HCoBM8')
HOST='https://www.bolha.com'
HEADERS={
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
}
@bot.message_handler(content_types=['text'])
def start(message):
bot.send_message(message.from_user.id, "введите ссылку категории для парсинга")
bot.register_next_step_handler(message, get_URL)
def get_URL(message):
global URL, ID, count1
count1=0
ID=message.from_user.id
try:
URL=message.text
html=get_html(URL)
if html.status_code==200:
bot.send_message(message.from_user.id, "введите дату размещения искомых обьявлений в формате: ГГГГ-ММ-ДД например(2021-11-25) или напишите 'No' если не хотите учитывать этот параметр")
bot.register_next_step_handler(message, get_DATA)
else:
bot.send_message(message.from_user.id, "ссылка не подходит")
start(message)
except:
bot.send_message(message.from_user.id, "ссылка не подходит")
start(message)
def get_DATA(message):
global DATA, count1, count2
count2=0
if count1==0:
DATA=message.text
bot.send_message(message.from_user.id, 'максимально допустимое количество сделок у продавца на сайте?')
count1+=1
bot.register_next_step_handler(message, get_opit)
def get_opit(message):
global opit_, count2, count3
count3=0
try:
if count2==0:
opit_=int(message.text)
bot.send_message(message.from_user.id, "с какой страницы начать парсинг?")
count2+=1
bot.register_next_step_handler(message, get_PAGENATION_ot)
except:
bot.send_message(message.from_user.id, "введите число")
get_DATA(message)
def get_PAGENATION_ot(message):
global PAGENATION_ot, count3
try:
if count3==0:
PAGENATION_ot=int(message.text)
bot.send_message(message.from_user.id, "на какой закончить?")
count3+=1
bot.register_next_step_handler(message, get_PAGENATION_do)
except:
bot.send_message(message.from_user.id, "введите число")
get_opit(message)
def get_PAGENATION_do(message):
global PAGENATION_do
try:
PAGENATION_do=int(message.text)+1
start_parsing(message)
except:
bot.send_message(message.from_user.id, "введите число")
get_PAGENATION_ot(message)
далее идет сам функционал парсера
как мне сделать так чтобы ботом могли пользоваться одновременно несколько пользователей? заранее спасибо.
Ответы (1 шт):
Асинхронные запросы. Я бы использовал облачные функции: lambda от amazon или google/firebase. Каждый запрос от пользователя к боту - новая функция. При необходимости запросы собирать в бд, потом парсить и отправлять каждому пользователю его результаты.