diff --git a/.idea/.name b/.idea/.name
deleted file mode 100644
index 03f298c..0000000
--- a/.idea/.name
+++ /dev/null
@@ -1,5 +0,0 @@
-<<<<<<< HEAD
-parcing.py
-=======
-Work with driver.py
->>>>>>> origin/master
diff --git a/.idea/22712.iml b/.idea/22712.iml
index 74d515a..9e6c4ca 100644
--- a/.idea/22712.iml
+++ b/.idea/22712.iml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index a971a2c..a6fa933 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 4d658fb..4572841 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,7 +4,13 @@
-
+
+
+
+
+
+
+
@@ -33,12 +39,45 @@
+<<<<<<< HEAD
+ {
+ "keyToString": {
+ "last_opened_file_path": "C:/Users/Honor/c22712"
+ }
+}
+
+=======
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+>>>>>>> d1c29f6 (телеграмм бот)
@@ -61,6 +100,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -84,6 +144,8 @@
+
+
@@ -147,7 +209,14 @@
1680206771744
-
+
+ 1680207517708
+
+
+
+ 1680207517708
+
+
diff --git a/Задания/task1/Antipenko/link_to_gh b/Задания/task1/Antipenko/link_to_gh
new file mode 100644
index 0000000..457aba9
--- /dev/null
+++ b/Задания/task1/Antipenko/link_to_gh
@@ -0,0 +1 @@
+https://github.com/ada-dmitry/PyProg_ada/tree/master/Python/TeleBot
diff --git a/Задания/task1/Epifanov/tgBot(try-exc-finally+usage of func-s in wwfuncs.py).py b/Задания/task1/Epifanov/tgBot(try-exc-finally+usage of func-s in wwfuncs.py).py
new file mode 100644
index 0000000..4b804da
--- /dev/null
+++ b/Задания/task1/Epifanov/tgBot(try-exc-finally+usage of func-s in wwfuncs.py).py
@@ -0,0 +1,63 @@
+#Небольшое предисловие: кнопки item1, item2 и item3 похожи по своему функционалу, однако между ними есть разница в реализации - item3 реализована через функцию, прописанную в доп.файле
+import telebot
+import psycopg2
+from telebot import types
+import random
+from wwfuncs import select #импорт функции из другого файла
+
+connection = psycopg2.connect(host='localhost', dbname='FHWDB', user='postgres', password='Q1w2e3r4')
+cursor = connection.cursor()
+
+try:
+ s_query = """SELECT * FROM public.parse"""
+ cursor.execute(s_query)
+except psycopg2.errors.UndefinedTable: #рассматриваем случай, когда таблицы нет
+ connection.rollback() #возвращаемся "на действие назад"
+ import FHWDB #создаём и заполняем таблицу, если её не существовало ранее
+ connection = psycopg2.connect(host='localhost', dbname='FHWDB', user='postgres', password='Q1w2e3r4')
+ cursor = connection.cursor()
+ s_query = '''SELECT * FROM public.parse'''
+ cursor.execute(s_query)
+finally:
+ arr = list(cursor.fetchall())
+
+bot = telebot.TeleBot('5980905704:AAH2qIP4Gy60nhuKNAojOGpmI6zwNoJK1Iw')
+
+@bot.message_handler(commands=["start"])
+def start(m, res=False):
+ markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
+ item1 = types.KeyboardButton("Хочу информацию о любых цветах, пожалуйста")
+ item2 = types.KeyboardButton("Хочу картинку любых цветов, пожалуйста")
+ item3 = types.KeyboardButton("Хочу информацию о предложении дня, пожалуйста")
+ item4 = types.KeyboardButton("Общая информация о сведениях, находящихся в базе данных")
+ markup.add(item1)
+ markup.add(item2)
+ markup.add(item3)
+ markup.add(item4)
+ bot.send_message(m.chat.id,
+ '"Хочу информацию о любых цветах, пожалуйста" - для получения карточки цветов;\n "Хочу картинку любых цветов, пожалуйста" - для получения картинки цветов;\n "Хочу информацию о предложении дня, пожалуйста" - сводка о конкретных цветах;\n "Общая информация о сведениях, находящихся в базе данных" - сводка об характеристиках товаров, информация о которых находится в БД.',
+ reply_markup=markup)
+
+@bot.message_handler(content_types=["text"])
+def handle_text(message):
+ if (message.text.strip() == "Хочу информацию о любых цветах, пожалуйста"):
+ i = random.choice(arr)
+ a1 = f'Название: {i[1]};\nЦена: {i[2]};\nСкидка(в процентах): {i[3]};\n'
+ bot.send_message(message.chat.id, a1)
+ elif (message.text.strip() == "Хочу картинку любых цветов, пожалуйста"):
+ i = random.choice(arr)
+ bot.send_photo(message.chat.id, open(i[4], 'rb'))
+ elif (message.text.strip() == "Хочу информацию о предложении дня, пожалуйста"):
+ j = random.randint(1, 61)
+ i = list(select(j))
+ a1 = f'Название: {i[1]};\nЦена: {i[2]};\nСкидка(в процентах): {i[3]};\n'
+ bot.send_message(message.chat.id, "Предложение дня:\n")
+ bot.send_message(message.chat.id, a1)
+ bot.send_photo(message.chat.id, open(i[4], 'rb'))
+ else:
+ bot.send_message(message.chat.id, "С помощью данного бота вы можете получить информацию о 60-и цветах одного из московских магазинов по их продаже, в частности их: название, цену, скидку(в процентах) и фото. Вы можете это осуществить, взаимодействуя с ботом. Попробуйте! ")
+
+bot.polling(none_stop=True, interval=0)
+
+cursor.close()
+connection.close()
diff --git a/Задания/task1/Epifanov/wwfuncs.py b/Задания/task1/Epifanov/wwfuncs.py
new file mode 100644
index 0000000..598f98f
--- /dev/null
+++ b/Задания/task1/Epifanov/wwfuncs.py
@@ -0,0 +1,22 @@
+import psycopg2
+
+connection = psycopg2.connect(host='localhost', dbname='FHWDB', user='postgres', password='Q1w2e3r4')
+cursor = connection.cursor()
+
+def edit(Col, N, NN, value):#Функция внесения изменений и сортировки
+ upd_query = f'''UPDATE Parse SET {Col} = '{NN}' WHERE {Col} = '{N}' '''
+ cursor.execute(upd_query)
+ ord_query = f'''SELECT * FROM public.parse order by {value};'''
+ cursor.execute(ord_query)
+ connection.commit()
+
+edit('Name', 'Ирисы небесно-голубого цвета', 'Ирисы', 'ID')
+
+#print(cursor.fetchall()) - для проверки
+
+def select(ID):
+ s_query = f'''SELECT * FROM public.Parse where ID = {ID}'''
+ cursor.execute(s_query)
+ return cursor.fetchone()
+
+#print(select(44)) - для проверки
diff --git a/Задания/task1/Filcheva/bot.py b/Задания/task1/Filcheva/bot.py
new file mode 100644
index 0000000..7e700c6
--- /dev/null
+++ b/Задания/task1/Filcheva/bot.py
@@ -0,0 +1,37 @@
+import telebot
+import psycopg2
+from telebot import types
+# Создаем экземпляр бота
+bot = telebot.TeleBot('5898574743:AAF2y_y3U2IfWwQVJ_lF6mmiDPlx1YgU9-Q')
+# Функция, обрабатывающая команду /start
+
+@bot.message_handler(commands=["start"])
+def start_messanger(messanger):
+ connection = psycopg2.connect(host='localhost', dbname='dbdata', user='postgres', password='Q1w2e3r4t5')
+ cursor = connection.cursor()
+ cursor.execute("select id, name from Distilleries")
+ first_step = []
+ for id, name in cursor.fetchall():
+ f_s = str(id) + '. ' + name
+ first_step.append(f_s)
+ my_str = '\n'.join(first_step)
+ bot.send_message(messanger.chat.id, 'Я на связи. Выберите интересующую вас Винокурню, введите ее номер\n' + my_str.strip())
+ cursor.close()
+ connection.close()
+
+
+@bot.message_handler(content_types=["text"])
+def output(put):
+ n = put.text.strip()
+ m = int(n)
+ connection = psycopg2.connect(host='localhost', dbname='dbdata', user='postgres', password='Q1w2e3r4t5')
+ cursor = connection.cursor()
+ cursor.execute(f"select place, contacts, imagelink from Distilleries where id = {m}")
+ for place, contacts, imagelink in cursor.fetchall():
+ answer = 'Адрес: ' + place + ' ' + 'Контакты: ' + contacts + ' ' + 'Фото: ' + imagelink
+ bot.send_message(put.chat.id, answer)
+ cursor.close()
+ connection.close()
+
+
+bot.polling()
diff --git a/Задания/task1/Filcheva/bot1.py b/Задания/task1/Filcheva/bot1.py
new file mode 100644
index 0000000..7265303
--- /dev/null
+++ b/Задания/task1/Filcheva/bot1.py
@@ -0,0 +1,121 @@
+import telebot
+import psycopg2
+from telebot import types
+# Создаем экземпляр бота
+bot = telebot.TeleBot('5898574743:AAF2y_y3U2IfWwQVJ_lF6mmiDPlx1YgU9-Q')
+# Функция, обрабатывающая команду /start
+
+@bot.message_handler(commands=["start"])
+def start_messanger(messanger):
+ connection = psycopg2.connect(host='localhost', dbname='dbdata', user='postgres', password='Q1w2e3r4t5')
+ cursor = connection.cursor()
+ cursor.execute("select id, name from Distilleries")
+ first_step = []
+ for id, name in cursor.fetchall():
+ f_s = str(id) + '. ' + name
+ first_step.append(f_s)
+ my_str = '\n'.join(first_step)
+ bot.send_message(messanger.chat.id, 'Я на связи. Выберите интересующую вас Винокурню, введите ее номер\n' + my_str.strip())
+ cursor.close()
+ connection.close()
+
+
+@bot.message_handler(content_types=["text"])
+def output(put):
+ n = put.text.strip()
+ m = int(n)
+ connection = psycopg2.connect(host='localhost', dbname='dbdata', user='postgres', password='Q1w2e3r4t5')
+ cursor = connection.cursor()
+
+ if (m==1):
+ cursor.execute("select place, contacts, imagelink from Distilleries where id in(1)")
+
+ for place, contacts, imagelink in cursor.fetchall():
+ answer = 'Адрес: ' + place + ' ' + 'Контакты: ' + contacts + ' ' + 'Фото: ' + imagelink
+ bot.send_message(put.chat.id, answer)
+ cursor.close()
+ connection.close()
+
+ if (m == 2):
+ cursor.execute("select place, contacts, imagelink from Distilleries where id in(2)")
+
+ for place, contacts, imagelink in cursor.fetchall():
+ answer = 'Адрес: ' + place + ' ' + 'Контакты: ' + contacts + ' ' + 'Фото: ' + imagelink
+ bot.send_message(put.chat.id, answer)
+ cursor.close()
+ connection.close()
+
+ if (m == 3):
+ cursor.execute("select place, contacts, imagelink from Distilleries where id in(3)")
+
+ for place, contacts, imagelink in cursor.fetchall():
+ answer = 'Адрес: ' + place + ' ' + 'Контакты: ' + contacts + ' ' + 'Фото: ' + imagelink
+ bot.send_message(put.chat.id, answer)
+ cursor.close()
+ connection.close()
+
+ if (m == 4):
+ cursor.execute("select place, contacts, imagelink from Distilleries where id in(4)")
+
+ for place, contacts, imagelink in cursor.fetchall():
+ answer = 'Адрес: ' + place + ' ' + 'Контакты: ' + contacts + ' ' + 'Фото: ' + imagelink
+ bot.send_message(put.chat.id, answer)
+ cursor.close()
+ connection.close()
+
+ if (m == 5):
+ cursor.execute("select place, contacts, imagelink from Distilleries where id in(5)")
+
+ for place, contacts, imagelink in cursor.fetchall():
+ answer = 'Адрес: ' + place + ' ' + 'Контакты: ' + contacts + ' ' + 'Фото: ' + imagelink
+ bot.send_message(put.chat.id, answer)
+ cursor.close()
+ connection.close()
+
+ if (m == 6):
+ cursor.execute("select place, contacts, imagelink from Distilleries where id in(6)")
+
+ for place, contacts, imagelink in cursor.fetchall():
+ answer = 'Адрес: ' + place + ' ' + 'Контакты: ' + contacts + ' ' + 'Фото: ' + imagelink
+ bot.send_message(put.chat.id, answer)
+ cursor.close()
+ connection.close()
+
+ if (m == 7):
+ cursor.execute("select place, contacts, imagelink from Distilleries where id in(7)")
+
+ for place, contacts, imagelink in cursor.fetchall():
+ answer = 'Адрес: ' + place + ' ' + 'Контакты: ' + contacts + ' ' + 'Фото: ' + imagelink
+ bot.send_message(put.chat.id, answer)
+ cursor.close()
+ connection.close()
+
+ if (m == 8):
+ cursor.execute("select place, contacts, imagelink from Distilleries where id in(8)")
+
+ for place, contacts, imagelink in cursor.fetchall():
+ answer = 'Адрес: ' + place + ' ' + 'Контакты: ' + contacts + ' ' + 'Фото: ' + imagelink
+ bot.send_message(put.chat.id, answer)
+ cursor.close()
+ connection.close()
+
+ if (m == 9):
+ cursor.execute("select place, contacts, imagelink from Distilleries where id in(9)")
+
+ for place, contacts, imagelink in cursor.fetchall():
+ answer = 'Адрес: ' + place + ' ' + 'Контакты: ' + contacts + ' ' + 'Фото: ' + imagelink
+ bot.send_message(put.chat.id, answer)
+ cursor.close()
+ connection.close()
+
+ if (m == 10):
+ cursor.execute("select place, contacts, imagelink from Distilleries where id in(10)")
+
+ for place, contacts, imagelink in cursor.fetchall():
+ answer = 'Адрес: ' + place + ' ' + 'Контакты: ' + contacts + ' ' + 'Фото: ' + imagelink
+ bot.send_message(put.chat.id, answer)
+ cursor.close()
+ connection.close()
+
+
+bot.polling()
diff --git a/Задания/task1/Garanyan/main.py b/Задания/task1/Garanyan/parser.py
similarity index 100%
rename from Задания/task1/Garanyan/main.py
rename to Задания/task1/Garanyan/parser.py
diff --git a/Задания/task1/Garanyan/problems.py b/Задания/task1/Garanyan/problems.py
new file mode 100644
index 0000000..018fd04
--- /dev/null
+++ b/Задания/task1/Garanyan/problems.py
@@ -0,0 +1,30 @@
+import psycopg2
+import wget
+
+from Задания.task1.Garanyan import parser
+
+connection = psycopg2.connect(host='localhost', dbname='dbdata', user='postgres',
+ password='Q1w2e3r4')
+cursor = connection.cursor()
+create_q = '''CREATE TABLE Food
+ (ID serial primary key, Name varchar(500), Price varchar(60), src varchar(100))'''
+
+try:
+ cursor.execute(create_q)
+ connection.commit()
+except psycopg2.errors.DuplicateTable:
+ print("s")
+
+for j in range(15):
+ url = parser.Image[j].find('img').attrs['src']
+ tempf = f"C:\\Users\\Harutyun\\Desktop\\prog\\food{j}.jpg"
+ wget.download(url, tempf)
+ try:
+ insert_query = f'''INSERT into public.Food(Name, Price, src) values ('{parser.Name[j].text}', '{parser.Price[j].text}', '{tempf}') '''
+ cursor.execute(insert_query)
+ connection.commit()
+ except:
+ connection.rollback()
+
+cursor.close()
+connection.close()
\ No newline at end of file
diff --git a/Задания/task1/Garanyan/tgbot.py b/Задания/task1/Garanyan/tgbot.py
new file mode 100644
index 0000000..4bc1be5
--- /dev/null
+++ b/Задания/task1/Garanyan/tgbot.py
@@ -0,0 +1,47 @@
+import telebot
+import psycopg2
+from telebot import types
+import random
+
+connection = psycopg2.connect(host='localhost', dbname='dbdata', user='postgres',
+ password='Q1w2e3r4')
+cursor = connection.cursor()
+try:
+ sel_query = """SELECT * FROM public.food"""
+ cursor.execute(sel_query)
+except psycopg2.errors.UndefinedTable:
+ connection.rollback()
+ import problems
+ sel_query = """SELECT * FROM public.food"""
+ cursor.execute(sel_query)
+
+array = list(cursor.fetchall())
+
+bot = telebot.TeleBot('841097550:AAFc5MoFRivTEfv-gOSJctqH53NfYMTKpCc')
+
+
+@bot.message_handler(commands=["start"])
+def start(m, res=False):
+ markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
+ item1 = types.KeyboardButton("Хот-доги и соусы!")
+ item2 = types.KeyboardButton("Случайная фотография нашего товара!")
+ markup.add(item1)
+ markup.add(item2)
+ bot.send_message(m.chat.id,
+ '"Хот-доги и соусы!" - для получения случайного товара из нашей хотдожной\n'
+ ' "Случайная фотография нашего товара!" - для вывода фотографий',
+ reply_markup=markup)
+
+@bot.message_handler(content_types=["text"])
+def handle_text(message):
+ if (message.text.strip() == 'Хот-доги и соусы!'):
+ i = random.choice(array)
+ ans = f'Название: {i[1]}\nЦена: {i[2]}\n'
+ bot.send_message(message.chat.id, ans)
+ bot.send_photo(message.chat.id, open(i[3], 'rb'))
+ elif (message.text.strip() == 'Случайная фотография нашего товара!'):
+ i = random.choice(array)
+ bot.send_photo(message.chat.id, open(i[3], 'rb'))
+
+
+bot.polling(none_stop=True, interval=0)
\ No newline at end of file
diff --git a/Задания/task1/Kluchinskaya1/telegramBot.py b/Задания/task1/Kluchinskaya1/telegramBot.py
new file mode 100644
index 0000000..1723ade
--- /dev/null
+++ b/Задания/task1/Kluchinskaya1/telegramBot.py
@@ -0,0 +1,37 @@
+import telebot
+import psycopg2
+def execute_request(request):
+ connection = psycopg2.connect(host='localhost', dbname='dbdata',
+ user='postgres', password='Q1w2e3r4')
+ cursor = connection.cursor()
+ cursor.execute(request)
+ result = cursor.fetchall()
+ cursor.close()
+ connection.close()
+ return result
+min_id = int(execute_request("select min(id) from parsing")[0][0])
+max_id = int(execute_request("select max(id) from parsing")[0][0])
+bot = telebot.TeleBot('6060681334:AAHASvjmAEn_DF_NjymP1MMpq14kYx_2cZw')
+@bot.message_handler(commands=["start"])
+def start(m, res=False):
+ bot.send_message(m.chat.id, f'Привет. Введите идентификатор от {min_id} до {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 or current_id < min_id:
+ bot.send_message(message.chat.id, "ID больше, чем количество товаров. Попробуйте снова:")
+ return
+ else:
+ data = execute_request(f"select * from parsing where id = {current_id}")[0][1:]
+ names_of_columns = ["name", "link"]
+ everydata = []
+ for data_name, column_name in zip(data, names_of_columns):
+ everydata.append(column_name.capitalize() + ": " + data_name)
+ bot.send_message(message.chat.id, "\n\n".join(everydata))
+ bot.send_message(message.chat.id, f"Введите следующий ID от {min_id} до {max_id}:")
+bot.polling(none_stop=True, interval=0)
+#for commit
diff --git a/Задания/task1/Kulikov/db_parsV2.0.py b/Задания/task1/Kulikov/db_parsV2.0.py
new file mode 100644
index 0000000..2892449
--- /dev/null
+++ b/Задания/task1/Kulikov/db_parsV2.0.py
@@ -0,0 +1,54 @@
+from bs4 import BeautifulSoup
+from selenium.webdriver import Chrome
+from selenium import webdriver
+from selenium.webdriver.chrome.service import Service
+import time
+import wget
+import psycopg2
+import re
+s = Service('C:\Users\Alex\PycharmProjects\pythonProject\chromedriver.exe')
+browser = webdriver.Chrome(service=s)
+browser.get('https://music.yandex.ru/chart')
+time.sleep (1)
+html_text = browser.page_source
+soup = BeautifulSoup(html_text, 'lxml')
+Трек=soup.find_all('a', class_='d-track__title deco-link deco-link_stronger')
+Длительность=soup.find_all('div', class_='d-track__info d-track__nohover')
+Автор=soup.find_all('span', class_='d-track__artists')
+Картинки=soup.find_all('img', class_='entity-cover__image deco-pane')
+str_Картинки=[]
+for i in range(len(Картинки)):
+ str_Картинки.append(Картинки[i])
+str_Картинки=str(str_Картинки)
+str_Картинки=re.findall(r'src="(.*?)"',str_Картинки)
+for i in range(len(str_Картинки)):
+ str_Картинки[i]='https:'+str_Картинки[i]
+#for i in range(len(str_cartinki)):
+ #wget.download(str_cartinki[i], 'TOP'+str((i+1))+'.jpeg')
+
+
+connection = psycopg2.connect(dbname = 'dbdata',
+ user='postgres', password='Q1w2e3r4',
+ host='localhost')
+cursor=connection.cursor()
+creat_table="""CREATE TABLE music
+ (id serial primary key, "Трек" varchar(100),
+ "Длительность" varchar(100),
+ "Автор" varchar(100),
+ "Картинки" varchar(100))"""
+cursor.execute(creat_table)
+connection.commit()
+for Трек, Длительность, Автор, Картинки in zip(Трек, Автор, Длительность, Картинки):
+ qwery=f"""INSERT INTO public.music(
+ Трек, Длительность, Автор, Картинки)
+ VALUES
+ ('{Трек.text}','{Длительность.text}','{Автор.text}', '{Картинки.text}' )"""
+ cursor.execute(qwery)
+ connection.commit()
+for i in range(1,len(str_Картинки)+1):
+ puti = r'C:\papkta' + str(i) + '.jpeg'
+ qwery=f"""UPDATE public.music
+ SET Картинки='{puti}'
+ WHERE id={i}"""
+ cursor.execute(qwery)
+ connection.commit()
\ No newline at end of file
diff --git a/Задания/task1/Lahin/postgres.py b/Задания/task1/Lahin/postgres.py
index cfa0920..fe8a029 100644
--- a/Задания/task1/Lahin/postgres.py
+++ b/Задания/task1/Lahin/postgres.py
@@ -4,6 +4,7 @@ from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import time
+import config
i = 1
s = Service("С:\DATA\ChromeDriver\chromedriver.exe")
browser = webdriver.Chrome(service=s)
@@ -22,14 +23,14 @@ productst = soup.find_all('a', class_="product-title__text")
pricest = soup.find_all('span', class_="price__main-value")
features = soup.find_all('span', class_="product-feature-list__value")
pictures = soup.find_all('div', class_="product-picture-container")
-connection=psycopg2.connect(host='localhost', dbname='dbdata', user='postgres', password='Q1w2e3r4')
+connection=psycopg2.connect(host=config.host, dbname=config.dbname, user=config.user, password=config.password)
cursor = connection.cursor()
-""" insert = CREATE TABLE public.laptops(
+insert = """CREATE TABLE public.laptops(
id serial primary key,
-product varchar(100),
-price varchar(15),
-diagonal varchar(5),
-resolution varchar(20),
+Product varchar(100),
+Price varchar(15),
+Diagonal varchar(5),
+Resolution varchar(20),
CPU varchar(50),
RAM varchar(15),
Graphics_Controller varchar(40),
@@ -37,7 +38,7 @@ Volume varchar(25),
src varchar(100)
);
"""
-insert = """TRUNCATE TABLE public.laptops; ALTER SEQUENCE laptops_id_seq RESTART WITH 1;"""
+
cursor.execute(insert)
connection.commit()
for i in range(len(productst)):
@@ -49,13 +50,11 @@ for i in range(len(productst)):
wget.download(url, filename)
t = pricest[i].text.replace("\xa0", " ")
insert = f"""INSERT INTO public.laptops(
- product, price, diagonal, resolution, CPU, RAM, Graphics_Controller, Volume, src)
+ Product, Price, Diagonal, Resolution, CPU, RAM, Graphics_Controller, Volume, src)
VALUES
('{productst[i].text.strip()}', '{t.strip()}', '{u[0][:u[0].find("/")]}', '{u[0][u[0].find("/")+1:]}',
'{u[2]}', '{u[4]+" "+u[5]}', '{u[6]}', '{u[8]}', '{filename}');"""
cursor.execute(insert)
connection.commit()
-cursor.execute("select * from laptops")
-print("Результат", cursor.fetchall())
cursor.close()
-connection.close()
+connection.close()
\ No newline at end of file
diff --git a/Задания/task1/Lahin/telegrambot.py b/Задания/task1/Lahin/telegrambot.py
new file mode 100644
index 0000000..3031c38
--- /dev/null
+++ b/Задания/task1/Lahin/telegrambot.py
@@ -0,0 +1,38 @@
+import telebot
+import psycopg2
+import config
+def execute_request(request):
+ connection = psycopg2.connect(host=config.host, dbname=config.dbname, user=config.user, password=config.password)
+ cursor = connection.cursor()
+ cursor.execute(request)
+ result = cursor.fetchall()
+ cursor.close()
+ connection.close()
+ return result
+max_id = int(execute_request("select count(*) from laptops")[0][0])
+bot = telebot.TeleBot(config.bot_token)
+@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:
+ data = execute_request(f"select * from laptops where id = {current_id}")[0][1:-1]
+ names_of_columns = ["Товар", "Цена", "Диагональ", "Разрешение", "Процессор", "Оперативная память", "Графический контроллер", "Объём диска"]
+ everydata = []
+ for data_name, column_name in zip(data, names_of_columns):
+ everydata.append(column_name.capitalize() + ": " + data_name)
+ bot.send_message(message.chat.id, "\n\n".join(everydata))
+ bot.send_message(message.chat.id, f"Введите следующий ID от 1 до {max_id}:")
+bot.polling(none_stop=True, interval=0)
+
+
diff --git a/Задания/task1/Prokhorova/dz.py b/Задания/task1/Prokhorova/dz.py
index 3f21c6b..2dfcb87 100644
--- a/Задания/task1/Prokhorova/dz.py
+++ b/Задания/task1/Prokhorova/dz.py
@@ -19,12 +19,20 @@ browser.get('https://www.ozon.ru/category/platya-zhenskie-7502/')
html_code = browser.page_source
soup = BeautifulSoup(html_code, 'lxml')
-name = soup.find_all('span', class_="m2e e3m m3e m5e tsBodyL k7l l7k")
+names = []
sale = soup.find_all('div', class_="eg1 g3e")
+
price = soup.find_all('span', class_="a2a-a2")
info = soup.find_all('span', class_="je4")
picture = soup.find_all('div', class_="k1m")
+products = soup.find_all("div", class_="k7o o7k")
+for product in products:
+ names.append(soup.find('span', class_="m2e e3m m3e m5e tsBodyL k7l l7k").text.strip())
+
+print(names)
+exit(0)
+
for i in range(20):
url = picture[i].find('img').attrs['src']
file_name = f"C:\\Users\\Honor\\Desktop\\учеба\\прога\\pictures\\{i}.jpg"
diff --git a/Задания/task1/Prokhorova/tgbot.py b/Задания/task1/Prokhorova/tgbot.py
new file mode 100644
index 0000000..6c10419
--- /dev/null
+++ b/Задания/task1/Prokhorova/tgbot.py
@@ -0,0 +1,37 @@
+import telebot
+import random
+from telebot import types
+
+f = open('C:\\Users\\Honor\\Desktop\\учеба\\прога\\тг_бот\\бот\\факт.txt', 'r', encoding='UTF-8')
+facts = f.read().split('\n')
+f.close()
+
+f = open('C:\\Users\\Honor\\Desktop\\учеба\\прога\\тг_бот\\бот\\поговорка.txt', 'r', encoding='UTF-8')
+thinks = f.read().split('\n')
+f.close()
+
+bot = telebot.TeleBot('5696445699:AAEPKQgUAs39DTLr_iyQvlaFAsJNFK8DMnc')
+
+@bot.message_handler(commands=["start"])
+def start(m, res=False):
+
+ markup=types.ReplyKeyboardMarkup(resize_keyboard=True)
+ item1=types.KeyboardButton("Факт")
+ item2=types.KeyboardButton("Поговорка")
+ markup.add(item1)
+ markup.add(item2)
+ bot.send_message(m.chat.id, 'Нажми: \nФакт'
+ ' для получения интересного факта\nПоговорка '
+ '— для получения мудрой цитаты ', reply_markup=markup)
+
+@bot.message_handler(content_types=["text"])
+def handle_text(message):
+ if message.text.strip() == 'Факт' :
+ answer = random.choice(facts)
+
+ elif message.text.strip() == 'Поговорка':
+ answer = random.choice(thinks)
+
+ bot.send_message(message.chat.id, answer)
+
+bot.polling(none_stop=True, interval=0)
\ No newline at end of file
diff --git a/Задания/task1/Sukhanov/BOT_TG.py b/Задания/task1/Sukhanov/BOT_TG.py
new file mode 100644
index 0000000..4972205
--- /dev/null
+++ b/Задания/task1/Sukhanov/BOT_TG.py
@@ -0,0 +1,39 @@
+import telebot
+import psycopg2
+import config
+from telebot import types
+import random
+
+connection = psycopg2.connect(host='localhost', dbname='dbdata', user='postgres', password='Q1w2e3r4')
+
+cursor = connection.cursor()
+
+sel_query = """SELECT * FROM public.parser"""
+cursor.execute(sel_query)
+array = list(cursor.fetchall())
+
+bot = telebot.TeleBot('6293063008:AAEFscB5LEjxC_4irrcgT-z6Eb0NXYOxZng')
+@bot.message_handler(commands=["start"])
+def start(m, res=False):
+ markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
+ item1 = types.KeyboardButton("Рандомный продукт")
+ item2 = types.KeyboardButton("Повтори!")
+ markup.add(item1)
+ markup.add(item2)
+ bot.send_message(m.chat.id,
+ '"Рандомный продукт" - для получения карточки товара\n "Повтори!" - для повторения сообщений.',
+ reply_markup=markup)
+
+
+@bot.message_handler(content_types=["text"])
+def handle_text(message):
+ if (message.text.strip() == 'Рандомный продукт'):
+ i = random.choice(array)
+ ans = f'Название: {i[1]}\nЦена: {i[2]}\nРейтинг: {i[3]}\n'
+ bot.send_message(message.chat.id, ans)
+ bot.send_photo(message.chat.id, open(i[4], 'rb'))
+ elif (message.text.strip() == 'Повтори!'):
+ bot.send_message(message.chat.id, 'Ввод: ' + message.text)
+
+
+bot.polling(none_stop=True, interval=0)
diff --git a/Задания/task1/Uskova/bott.py b/Задания/task1/Uskova/bott.py
new file mode 100644
index 0000000..47436e0
--- /dev/null
+++ b/Задания/task1/Uskova/bott.py
@@ -0,0 +1,36 @@
+import telebot
+import psycopg2
+import config
+from telebot import types
+import random
+import tableCreator
+
+connection = psycopg2.connect(host='localhost', dbname='parc', user='postgres', password='Q1w2e3r4')
+cursor = connection.cursor()
+
+ins_query = """SELECT * FROM public.Notebooks"""
+cursor.execute(ins_query)
+array = list(cursor.fetchall())
+
+bot = telebot.TeleBot('6205726630:AAF4zfV_P2b0f7bClm__sWuRmoZ1XpiC_xo')
+@bot.message_handler(commands=["start"])
+
+def start(m, res=False):
+ markup=types.ReplyKeyboardMarkup(resize_keyboard=True)
+ item1=types.KeyboardButton("Выбери ноутбук")
+ item2=types.KeyboardButton("Еще!")
+ markup.add(item1)
+ markup.add(item2)
+ bot.send_message(m.chat.id, 'Нажми: \nВыбери ноутбук'
+ ' для просмотра товара\nЕще! '
+ '— для повтора', reply_markup=markup)
+@bot.message_handler(content_types=["text"])
+def handle_text(message):
+ if message.text.strip() == 'Выбери ноутбук' :
+ q = random.choice(array)
+ answer = f'Название: {q[1]}\nОписание: {q[2]}\nКод: {q[3]}\nЦена: {q[4]}\n'
+ bot.send_message(message.chat.id, answer)
+ bot.send_picture(message.chat.id, open(q[5], 'rb'))
+ elif message.text.strip() == 'Еще!':
+ bot.send_message(message.chat.id, 'Ввод: '+ message.text)
+bot.polling(none_stop=True, interval=0)