Большое спасибо, обязательно учту все свои ошибки
Я прошу прощения, но у меня возникла новая проблема, буду благодарен за вашу помощь
я думаю, что я исправил синтаксические ошибки, однако теперь при запуске бот возникает ошибка
Traceback (most recent call last):File "D:\слава ситису\Курс.py", line 7, in <module>@bot.massage_handler(commands=['start'])AttributeError: 'TeleBot' object has no attribute 'massage_handler'
вот переписанный код:
import telebot
import config
bot = telebot.TeleBot(config.TG_TOKEN)
@bot.massage_handler(commands=['start'])
def welcom(message):
bot.send_message(message.chat.id, 'Хай бейби, хай!')
import erqests
import Beautifuls
import time
class curency:
DOLLAR_RUB = 'https://yandex.ru/search/?clid=2297897&text=rehc%20ljkkfhf&l10n=ru&lr=65'
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36 OPR/67.0.3575.105'}
current_converted_print = 0
difference = 5
def _init_(self):
self.current_converted_print = float(self.get_currency_price())
def get_currency_print(self):
full_page = requests.get(DOLLAR_RUB, headers=self.headers)
soup = deautidulSoup (full_page.content, 'html.parser')
convert = soup.findAll("span", {"class": "DFlfde", "class": "SwHCTb", "data-precision": 2})
def check_currensy(self):
bot.send_message(message.chat.id ("Керюха, по курс один доллар равен") + str(currensy))
currency = float(self.get_currency_prise().replace(",","."))
if cuttency >= self.corrent_coverted_price + self.difference:
bot.send_message(message.chat.id("Курс сильно вырос, готовь заначку "))
elif cuttency <= self.corrent_coverted_price - self.difference:bot.send_message(message.chat.id("Курс сильно упал, можно закупаться видео-картами"))
time.sleep(3)
check_currency()
currency = currency()
currency.check_currency()
bot.polling(none_stop=True)
Может быть, message_handler?
спасибо, не заметил
теперь выводит другую ошибку
Traceback (most recent call last):
File “D:\слава ситису\Курс.py”, line 12, in
import erqests
ModuleNotFoundError: No module named ‘erqests’
Еще например 2 одинаковых ключа не может быть в dict ({ ... }
), видимо там надо что-то другое вместо повтора class
. И эти имена классов выглядят сгенерированными, возможно они периодически меняются, лучше подумать как сделать другой селектор.
Вообще для курса валют наверняка полно API, не надо парсить HTML для такого.
видимо requests
И используйте кнопку Код при выкладывании кода. FAQ по функциональности форума, отличия от классических форумных движков
благодарю, обязательно учту
Перевожу: requests
Такие ошибки в первую очередь проверяйте на опечатки.
UPD. Не увидел, что уже ответили
Вывело то, что нет модуля BeautifulSoup
переписал import Beautifuls на From bs4 import BeautifulSoup (так было источнике от куда я брал эту часть кода)
теперь выводит ошибку: нет модуля с именем bs4
скажите, что исправить?
Не силён в питоне, но яндекс мне вот тут подсказывает import beautifulsoup
А про Beautifuls ничего не подсказывает
Может быть, ошибки в исходнике?
извиняюсь это я печатался в вопросе) там как раз токи import beautifulsoup
Тогда питон просто не знает путь к собственным библиотекам. Я такую фигню получал, когда одновременно поставил 2.7 и 3.
Можно сделать такой финт ушами (пример нагло выкраден из нета). Учтите, что в примере - Linux
import sys
sys.path[0:0] = ['/usr/home/myName/.local/lib/python2.7/site-packages/']
from bs4 import BeautifulSoup
я сделал этот финт ушами (великолепная фраза)
но все еще выдает ту же ошибку
Traceback (most recent call last):
File “D:\слава ситису\Курс.py”, line 15, in
from bs4 import beautifulsoup
ModuleNotFoundError: No module named ‘bs4’
А как и куда вы библиотеки ставите?
Обычно используют pip + venv (или обертки типа poetry, pipenv) и получается, что всё в самом проекте независимо от системы и других проектов.
Тут пример с poetry: Пример создания GUI приложения на Python. PySide2, Poetry, PyCharm
Согласен с Alex P - а библиотеки вообще установлены?
да, библиотеки установлены
прошу прощения за наглость, но можешь подсказать что и куда нужно в писать в код, я новичок и не совсем понимаю этот вопрос
сам код:
import telebot
import config
bot = telebot.TeleBot(config.TG_TOKEN)
@bot.message_handler(commands=['start'])
def welcom(message):
bot.send_message(message.chat.id, 'Хай бейби, хай!')
import requests
from bs4 import beautifulsoup
import time
class curency:
DOLLAR_RUB = 'https://yandex.ru/search/?clid=2297897&text=rehc%20ljkkfhf&l10n=ru&lr=65'
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36 OPR/67.0.3575.105'}
current_converted_print = 0
difference = 5
def _init_(self):
self.current_converted_print = float(self.get_currency_price())
def get_currency_print(self):
full_page = requests.get(DOLLAR_RUB, headers=self.headers)
soup = deautidulSoup (full_page.content, 'html.parser')
convert = soup.findAll("span", {"class": "DFlfde", "class": "SwHCTb", "data-precision": 2})
def check_currensy(self):
bot.send_message(message.chat.id ("Керюха, по курс один доллар равен") + str(currensy))
currency = float(self.get_currency_prise().replace(",","."))
if cuttency >= self.corrent_coverted_price + self.difference:
bot.send_message(message.chat.id("Курс сильно вырос, готовь заначку "))
elif cuttency <= self.corrent_coverted_price - self.difference:bot.send_message(message.chat.id("Курс сильно упал, можно закупаться видео-картами"))
time.sleep(3)
check_currency()
currency = currency()
currency.check_currency()
bot.polling(none_stop=True)
Если у Вас пайтон 2.7, то нужно вот так:
from beautifulsoup import beautifulsoup
В bs4 этот пакет переименовали уже в 3 пайтоне
Но поскольку Вы берёте примеры откуда-то из другого источника - то лучше, наверное, поставить 3
у меня пайтон 3.8.2, на всякий случай я попробовал, не ни чего не работает
так же если я вписываю в код pip install beautifulsoup4 то в программа отображает install за ошибку
Переустановить попробовать. Менеджер пакетов PIP должен с пайтоном был установиться. В командной строке под администратором
pip install bs4