Не работает парсер или апи в телегам боте на сервере
Возникла такая ошибка, что не работает телеграм бот на сервере, когда на локалке все отлично работает, не знаю из-за чего это происходит, потому что никаких ошибок не выдает.
import asyncio
from aiogram import Bot, Dispatcher, types, executor
from db import Datebase
from config import BOT_TOKEN, API_KEY
from apscheduler.schedulers.asyncio import AsyncIOScheduler
import requests
import datetime
from bs4 import BeautifulSoup
import lxml
import random
bot = Bot(BOT_TOKEN)
dp = Dispatcher(bot)
db = Datebase('database.db')
@dp.message_handler(commands=['start'])
async def start(msg: types.Message) -> None:
if msg.chat.type == 'private':
if not db.user_exists(msg.from_user.id):
db.add_user(msg.from_user.id)
await msg.answer('Добро пожаловать!')
@dp.message_handler()
async def sms2(msg: types.Message) -> None:
users = db.get_users()
for user in users:
try:
URL= f'https://api.openweathermap.org/data/2.5/weather?lat=53.9&lon=27.5667&appid={API_KEY}&units=metric&lang=ru'
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.41',
}
r = requests.get(url=URL, headers=headers)
data = r.json()
city = data['name']
cur_weath = round(float(data['main']['temp']))
feel_weth = round(float(data['main']['feels_like']))
humidity = data['main']['humidity']
wind = data['wind']['speed']
description = data['weather'][0]['description']
sunrise = datetime.datetime.fromtimestamp(data['sys']['sunrise']).strftime('%H:%M')
sunset = datetime.datetime.fromtimestamp(data['sys']['sunset']).strftime('%H:%M')
rub = requests.get('https://www.nbrb.by/api/exrates/rates/RUB?parammode=2', headers=headers)
data1 = rub.json()
price_rub = round(float(data1['Cur_OfficialRate']), 2)
usd = requests.get('https://www.nbrb.by/api/exrates/rates/USD?parammode=2', headers=headers)
data2 = usd.json()
price_usd = round(float(data2['Cur_OfficialRate']), 2)
eur = requests.get('https://www.nbrb.by/api/exrates/rates/EUR?parammode=2', headers=headers)
data3 = eur.json()
price_eur = round(float(data3['Cur_OfficialRate']), 2)
req = requests.get('https://wikiphile.ru/570-fraz-o-motivacii/?ysclid=le2s2e8ouu459711332' ,headers=headers)
soup = BeautifulSoup(req.text, 'lxml')
lst = soup.find('ol').find_all('li')
random_index = random.randint(0, len(lst) - 1)
await bot.send_message(user[0], text=
f'---------------{datetime.datetime.now().strftime("%d-%m-%Y")}---------------\n'\
'\n'\
'-----Погода-----\n'\
f'Город: {city}\n'\
f'Описание: {description}\n'\
f'Текущая погода: {cur_weath}°\n'\
f'Ощущается как: {feel_weth}°\n'\
f'Скорость ветра: {wind} м/с \n'\
f'Влажность: {humidity}\n'\
f'Рассвет: {sunrise}\n'\
f'Закат: {sunset}\n'\
'\n'\
f'-----Курсы валют-----\n'\
f'Доллар\n'\
f'Курс по НБРБ: {price_usd} BYN\n'\
f'Евро\n'\
f'Курс по НБРБ: {price_eur} BYN\n'\
f'Российский рубль(за 100р)\n'\
f'Курс по НБРБ: {price_rub} BYN\n'\
'\n'\
f'-----Рандомная цитата-----\n'\
f'{lst[random_index].text}'
)
if int(user[1]) != 1:
db.set_active(user[0], 1)
except:
db.set_active(user[0], 0)
if __name__ == '__main__':
scheduler = AsyncIOScheduler(timezone='Europe/Minsk')
scheduler.add_job(sms2, trigger='cron', hour=17, minute=20, start_date=datetime.datetime.now(), kwargs={'msg':types.Message, }, misfire_grace_time=3600 )
scheduler.start()
executor.start_polling(dp, skip_updates=True)
Источник: Stack Overflow на русском