@slymee

Почему бот не отправляет курс биткоина?

Не получается вывести 'fis' в сообщение бота(при правильной работе, должен отправлять сообщение с актуальным курсом битка). Что делать?
from setuptools import Command
import telebot
from telebot import types
from email import header
import requests
from bs4 import BeautifulSoup


# Api key 
token='-'
bot=telebot.TeleBot(token)

@bot.message_handler(content_types= ['text'])
def bot_message(message):
    if message.chat.type == 'private':       
        if message.text == ('Курсы валют:'):
            BITCOIN_RUB = 'https://www.google.com/search?q=%D0%B1%D0%B8%D1%82%D0%BA%D0%BE%D0%B8%D0%BD+%D0%B2+%D1%80%D1%83%D0%B1%D0%BB%D0%B8&oq=&aqs=chrome.1.35i39i362l8.504704j0j1&sourceid=chrome&ie=UTF-8'
            
            headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36'}

            full_page = requests.get(BITCOIN_RUB, headers=headers)
            soup = BeautifulSoup(full_page.content, 'html.parser')
            convert = soup.findAll('span', {'class' : 'pclqee'})
            fis = convert[0].text + ' RUB'
            
            bot.send_message(message.chat.id, fis) # Не работает
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 4
@DragonSov
Лучше получать курс валют с определённого API. Вероятно, у тебя ошибка в парсинге из-за JS, который использует Google для выборки результатов. Пример парсинга динамических страниц можешь посмотреть здесь. Также рекомендую разбить свой код на функции (как пример - своя функция для парсинга валюты) чтобы в будущем легко выявлять причину сбоя в программе.
Ответ написан
@or1gami
Как в старом меме.
API было придумано в 2006 году, люди до:

Зачем играться с парсерами, если есть апи, lol
Если тебе очень нужно сделать именно таким криво-косым методом, тогда хоть ошибку покажи
Ответ написан
@Psihovanniy7
Часть с парсингом работает безошибочно, вопрос к остальной части , для этого напиши какую ошибку пишет
Ответ написан
@Madax
У тебя не работает потому что ты не написал атрибут bot.send_message(message.chat.id, fis, parse=mode'html') ты же из сайта берёш вот из-за этого пайтон не понимает
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы