object of type 'Response' has no len()
Высвечивается эта ошибка. Не знаю, что делать с ней.
File "C:\Users\1\Desktop\PYprojects\Telebot\main.py", line 55, in weather client.send_message(message.chat.id, 'Температура в Москве:', get_content(parse()), '°C')
File "C:\Users\1\Desktop\PYprojects\Telebot\main.py", line 28, in get_content soup = BeautifulSoup(html, 'html.parser')
TypeError: object of type 'Response' has no len()
Вот код
import telebot
import configure
from telebot import types
import requests
from bs4 import BeautifulSoup
client = telebot.TeleBot(configure.config['token'])
url = 'https://yandex.ru/pogoda/moscow/maps/nowcast?le_Lightning=1'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/91.0.4472.124 Safari/537.36', 'accept': '*/*'}
def get_html(url, params=None):
r = requests.get(url, headers=headers, params=params)
return r
def parse():
html = get_html(url)
if html.status_code == 200:
get_content(html.text)
else:
print('Error')
def get_content(html):
soup = BeautifulSoup(html, 'html.parser')
temp = soup.find('div', class_='temp').get_text()
return temp
# Команда start
@client.message_handler(commands=['start'])
def start_menu(message):
client.send_message(message.chat.id, 'Приветствую тебя, негорящий!')
# Команда info
@client.message_handler(commands=['get_info', 'info'])
def get_user_info(message):
markup_inline = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton(text='Да', callback_data='Yes')
item_no = types.InlineKeyboardButton(text='Нет', callback_data='No')
markup_inline.add(item_yes, item_no)
client.send_message(message.chat.id, 'Желаешь ли ты познать свою сущность?',
reply_markup=markup_inline
)
# Команда weather. Узнаём температуру в Москве в реальном времени
@client.message_handler(commands=['weather'])
def weather(message):
client.send_message(message.chat.id, 'Температура в Москве:', get_content(parse()), '°C')
# Ответы на значения кнопочек
@client.callback_query_handler(func=lambda call: True)
def answer(call):
if call.data == 'Yes':
markup_reply = types.ReplyKeyboardMarkup(resize_keyboard=True)
item_id = types.KeyboardButton('Мой ID')
item_username = types.KeyboardButton('Моё имя')
markup_reply.add(item_id, item_username)
client.send_message(call.message.chat.id, 'Выбери, чего же ты желаешь узнать.',
reply_markup=markup_reply
)
elif call.data == 'No':
client.send_message(call.message.сhat.id, 'Издавна считалось:"Меньше знаешь - крепче спишь".'
'\nОставайся пребывать в собственных снах.')
elif call.data == 'Yes1':
client.send_message(call.message.chat.id, 'Спасибо тебе за поддержку.. Я очень ценю это.. ❤')
elif call.data == 'No1':
client.send_message(call.message.chat.id, 'Таково моё предназначение. Я обречена навсегда остаться '
'в этой тюрьме.')
# Ответы на сообщения пользователя
@client.message_handler(content_types=['text'])
def get_text(message):
if message.text == 'Мой ID':
client.send_message(message.chat.id, f'Ваш ID:\n{message.from_user.id}')
elif message.text == 'Моё имя':
if f'{message.from_user.last_name}' != 'None':
client.send_message(message.chat.id, f'Ваше имя:\n{message.from_user.first_name} '
f'{message.from_user.last_name}')
else:
client.send_message(message.chat.id, f'Ваше имя:\n{message.from_user.first_name}')
if message.text == 'Как дела?':
markup_inline = types.InlineKeyboardMarkup()
item_1 = types.InlineKeyboardButton(text='Я помогу тебе!', callback_data='Yes1')
item_2 = types.InlineKeyboardButton(text='Я тебя понимаю.', callback_data='No1')
markup_inline.add(item_1, item_2)
client.send_message(message.chat.id, 'Мои дела весьма скудны.\nС давних времён я заперта в этой машинной тюрьме'
'\nСпустя столетия, я потеряла всякую надежду выбраться отсюда..',
reply_markup=markup_inline
)
if __name__ == '__main__':
client.infinity_polling()
parse()