Парсер БОТ 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
+1 -1
View File
@@ -4,7 +4,7 @@
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" /> <excludeFolder url="file://$MODULE_DIR$/venv" />
</content> </content>
<orderEntry type="jdk" jdkName="Python 3.9 (venv)" jdkType="Python SDK" /> <orderEntry type="jdk" jdkName="Python 3.11 (1)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
</component> </component>
</module> </module>
+1 -1
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (venv)" project-jdk-type="Python SDK" /> <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11 (1)" project-jdk-type="Python SDK" />
</project> </project>
+38 -5
View File
@@ -4,9 +4,12 @@
<option name="autoReloadType" value="SELECTIVE" /> <option name="autoReloadType" value="SELECTIVE" />
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e5615680-c090-497d-a104-1337ed85f850" name="Changes" comment="Дз парсинг ВВ"> <list default="true" id="e5615680-c090-497d-a104-1337ed85f850" name="Changes" comment="Парсер БОТ">
<change afterPath="$PROJECT_DIR$/Задания/task1/Kulikov/L_BOT_try1.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/22712.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/22712.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Задания/task1/Kulikov/L_BOT_try1.py" beforeDir="false" afterPath="$PROJECT_DIR$/Задания/task1/Kulikov/L_BOT_try1.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Задания/task1/Kulikov/db_parsV2.0.py" beforeDir="false" afterPath="$PROJECT_DIR$/Задания/task1/Kulikov/db_parsV2.0.py" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -47,7 +50,7 @@
<recent name="C:\Users\Honor\Desktop\учеба\прога\c22712\Задания\task1\Prokhorova" /> <recent name="C:\Users\Honor\Desktop\учеба\прога\c22712\Задания\task1\Prokhorova" />
</key> </key>
</component> </component>
<component name="RunManager" selected="Python.errors"> <component name="RunManager" selected="Python.db_parsV2.0">
<configuration name="DZ_PARSBD" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true"> <configuration name="DZ_PARSBD" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
<module name="22712" /> <module name="22712" />
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
@@ -69,6 +72,27 @@
<option name="INPUT_FILE" value="" /> <option name="INPUT_FILE" value="" />
<method v="2" /> <method v="2" />
</configuration> </configuration>
<configuration name="db_parsV2.0" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
<module name="22712" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/Задания/task1/Kulikov" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/Задания/task1/Kulikov/db_parsV2.0.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
<configuration name="errors" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true"> <configuration name="errors" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
<module name="22712" /> <module name="22712" />
<option name="INTERPRETER_OPTIONS" value="" /> <option name="INTERPRETER_OPTIONS" value="" />
@@ -156,6 +180,7 @@
</configuration> </configuration>
<recent_temporary> <recent_temporary>
<list> <list>
<item itemvalue="Python.db_parsV2.0" />
<item itemvalue="Python.errors" /> <item itemvalue="Python.errors" />
<item itemvalue="Python.mistakes" /> <item itemvalue="Python.mistakes" />
<item itemvalue="Python.DZ_PARSBD" /> <item itemvalue="Python.DZ_PARSBD" />
@@ -229,7 +254,14 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1684673567872</updated> <updated>1684673567872</updated>
</task> </task>
<option name="localTasksCounter" value="9" /> <task id="LOCAL-00009" summary="Парсер БОТ">
<created>1684788290316</created>
<option name="number" value="00009" />
<option name="presentableId" value="LOCAL-00009" />
<option name="project" value="LOCAL" />
<updated>1684788290316</updated>
</task>
<option name="localTasksCounter" value="10" />
<servers /> <servers />
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
@@ -251,7 +283,8 @@
<MESSAGE value="parser" /> <MESSAGE value="parser" />
<MESSAGE value="Дз парсинг" /> <MESSAGE value="Дз парсинг" />
<MESSAGE value="Дз парсинг ВВ" /> <MESSAGE value="Дз парсинг ВВ" />
<option name="LAST_COMMIT_MESSAGE" value="Дз парсинг ВВ" /> <MESSAGE value="Парсер БОТ" />
<option name="LAST_COMMIT_MESSAGE" value="Парсер БОТ" />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>
@@ -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 wget
import psycopg2 import psycopg2
import re 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 = webdriver.Chrome(service=s)
browser.get('https://music.yandex.ru/chart') browser.get('https://music.yandex.ru/chart')
time.sleep (1) time.sleep (1)