Парсер БОТ V2

This commit is contained in:
Sanich777
2023-05-23 01:07:30 +03:00
parent 18e6122296
commit 03bfbc7ea9
6 changed files with 77 additions and 61 deletions
@@ -0,0 +1,36 @@
import telebot
import psycopg2
from telebot import types
tovars=['1','2','3','4']
def getcontent(i):
connection = psycopg2.connect(dbname='dbdata',
user='postgres', password='Q1w2e3r4',
host='localhost')
cursor = connection.cursor()
cursor.execute('''SELECT id, phone, price
FROM public.svyaznoy
where id = ''' + str(i))
b = cursor.fetchall()
for a in b:
c = 'Название модели: ' + str(a[1]) + ' Цена: ' + str(a[2])
cursor.close()
connection.close()
return c
bot = telebot.TeleBot('6053050329:AAFEBguQ5-UE80bB_aNjjSoUdIT91BlPJCY')
@bot.message_handler(commands=["start"])
def start(m, res=False):
bot.send_message(m.chat.id, 'Здравствуйте, я Ваш бот, и вы попали в магазин, в котором есть всего 4 товара! Напишите цифру от 1 до 4,чтобы узнать информацию о нем)')
@bot.message_handler(content_types=['text'])
def handle_text(message):
if message.text.strip() in tovars:
answer = getcontent(message.text.strip())
bot.send_message(message.chat.id, answer)
img = open('tovar'+str(message.text.strip())+'.jpeg','rb')
bot.send_photo(message.chat.id, img)
else:
answer = 'Да, пока только 4, но все впереди!'
bot.send_message(message.chat.id, answer)
bot.polling(none_stop=True, interval=0)
@@ -1,53 +0,0 @@
import telebot
import psycopg2
import config
bot = telebot.TeleBot(6053050329:AAFEBguQ5-UE80bB_aNjjSoUdIT91BlPJCY)
def select(request):
try:
connection = psycopg2.connect(host=config.host, dbname=config.dbname, user=config.user,
password=config.password)
cursor = connection.cursor()
cursor.execute(request)
result = cursor.fetchall()
except:
result = "Ошибка"
finally:
cursor.close()
connection.close()
return result
max_id = int(select("select max(id) from laptops")[0][0])
bot = telebot.TeleBot(6053050329:AAFEBguQ5-UE80bB_aNjjSoUdIT91BlPJCY)
@bot.message_handler(commands=["start"])
def start(m, res=False):
bot.send_message(m.chat.id, f'Привет. Введите идентификатор от 1 до {max_id}, чтобы получить данные: ')
@bot.message_handler(content_types=["text"])
def from_bd(message):
try:
current_id = int(message.text)
except BaseException:
bot.send_message(message.chat.id, "Вы неправильно ввели ID. Попробуйте снова:")
return
if current_id > max_id:
bot.send_message(message.chat.id, "ID больше, чем количество товаров. Попробуйте снова:")
return
else:
try:
data = select(f"select * from laptops where id = {current_id}")[0][1:]
if type(data) == str:
bot.send_message(message.chat.id, "Ошибка на сервере")
return
s = data[:-1]
names_of_columns = ["Товар", "Цена", "Диагональ", "Разрешение", "Процессор", "Оперативная память",
"Графический контроллер", "Объём диска"]
everydata = []
for data_name, column_name in zip(s, names_of_columns):
everydata.append(column_name.capitalize() + ": " + data_name)
bot.send_message(message.chat.id, "\n\n".join(everydata))
bot.send_photo(message.chat.id, open(data[-1], 'rb'))
except:
bot.send_message(message.chat.id, "Ошибка на сервере")
bot.send_message(message.chat.id, f"Введите следующий ID от 1 до {max_id}:")
bot.polling(none_stop=True, interval=0)
+1 -1
View File
@@ -6,7 +6,7 @@ import time
import wget
import psycopg2
import re
s = Service('C:\Users\Alex\PycharmProjects\pythonProject\chromedriver.exe')
s = Service('C:\\Users\\Alex\\PycharmProjects\\pythonProject\\chromedriver.exe')
browser = webdriver.Chrome(service=s)
browser.get('https://music.yandex.ru/chart')
time.sleep (1)