@Coder01243

Сервер heroku не может подключится к сайту, что делать?

Я сделал бота на питоне для телеграм , который парсит сайт с новостями, когда я запускаю его локально через cmd всё работает, но когда я заливаю его на heroku то выдаёт ошибку, говорят попробовать прокси, я подключил прокси, но проблема так и не решилась, может кто знает в чем дело?
Код бота:
import telebot
from telebot import apihelper
from telebot import types
import random
import requests
from time import sleep
from bs4 import BeautifulSoup as bs

BOT_TOKEN = '561987*****:AAFWD_Ybp***-hBrC***Qm-*********M_Y'  # Токен бота
PROXY = '******:*****@213.166.**.200:97*2' 

apihelper.proxy = {'https':'socks5h://' + PROXY}
bot = telebot. TeleBot(BOT_TOKEN)

@bot.message_handler(content_types=['text'])
def function(message):
	if message.chat.type == 'private':

		if message.text == 'Новости':
			limitnews = 0
			url = 'https://www.mk.ru/news/'			
			response = requests.get(url)
			soup = bs(response.text, 'html.parser')
			news = soup.findAll("li", class_="news-listing__item")
			day = soup.find("h2", class_="news-listing__day-date")
			bot.send_message(message.chat.id, day.text)

			sleep(1)

			for i in news:
				news_dis = i.find("h3", class_="news-listing__item-title").text.strip()
				news_time = i.find("span", class_="news-listing__item-time").text.strip()
				news_link = i.find("a", class_="news-listing__item-link").get("href")

				bot.send_message(message.chat.id, news_dis + '\nВремя опубликования новости: ' + news_time + '\nПодробнее: ' + news_link)

				limitnews += 1

				if limitnews == 3:
					break

Ошибка heroku:
2022-10-06T20:25:30.496820+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.10/site-packages/requests/sessions.py", line 701, in send
2022-10-06T20:25:30.497034:00:00 app[worker.1]:
r - adapter.send(request, **kwargs)
2022-10-06T20:25:30.497044+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.10/site-packages/requests/adapters.py", line 553, in send
2022-10-06T20:25:30.497234+00:00 app[worker.1]:
raise ConnectTimeout(e, request-request)
2022-10-06T20:25:30.497319+00:00 app[worker.1]: requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host=" www.mk.ru ", port-443): Max retries exceeded with url: /news/ (Caused
by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7fa79cd2e080>, 'Connection to www.mk.ru timed out. (connect timeout-None)'))
2022-10-06T20:25:30.686993+00:00 heroku[worker.1]: Process exited with status 1
2022-10-06T20:25:30.740501+00:00 heroku[worker.1]: State changed from up to crashed
2022-10-06T20:25:30.743873+00:00 heroku[worker.1]: State changed from crashed to starting
2022-10-06T20:25:32.202588+00:00 heroku[worker.1]: Starting process with command "python bot.py"
2022-10-06T20:25:32.977445+00:00 heroku[worker.1]: State changed from starting to up
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
@Coder01243 Автор вопроса
Я решил проблему, проблема была не в самом сайте, а в коде, когда бот подключался к сайту он не использовал прокси, но проблема решилась когда написал в коде:
response = requests.get(url=url, headers=headers, proxies=proxies)

headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:94.0) Gecko/20100101 Firefox/94.0'
}

proxies = {
    'https': f'socks5h://******:*****@2**.1**.73.20*:9**2'
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Пробуй дебажить при помощи cURL, подключившись удаленно к контейнеру:
heroku run bash -a MYAPP
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы