Уведомления

Группа в Telegram: @pythonsu

#1 Июль 4, 2022 18:54:08

nkv
Зарегистрирован: 2022-07-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

обновление спарсинговых данных(курса валют) в боте размещенном на хостинге

Имеется телеграм бот необходимо добавить вывод курса валют с определённого сайта. Бота разместил на хостинге (beget) , но при изменении курса валют на сайте в боте данные не меняются, только при полном перезапуске бота на хостинге (вручную). Необходимо, чтобы курс обновлялся автоматически (т.е. алгоритм парсинга постоянно обноавлялся). Для автообновления данного функционала возникла мысль добавить while True: + time, но не могу понять, как использовать его в данном случае.
Код представлен ниже:

 import requests
from bs4 import BeautifulSoup
def f(m, url):
    source = requests.get(url)
    main_text = source.text
    soup = BeautifulSoup(main_text, 'html.parser')
    table = soup.findAll('td')
    table = str(table)
    n = ''  
    for i in table: #отбирает с строки только числа 
        if i.isdigit():
            n += i
        else:
            if n.isdigit():
                m.append(float(n))
                n = ''
    if n != '':
        m.append(float(n))
m = []
url = 'URL_САЙТА'
f(m, url)
if len(m) < 100:
    dollar_buy = (m[0])
    dollar_sale = (m[2])
    euro_buy = (m[4])
    euro_sale = (m[6])
    tenge_buy = (m[9])
    tenge_sale = (m[11])

Отредактировано nkv (Июль 4, 2022 19:16:36)

Офлайн

#2 Июль 4, 2022 19:12:06

ntram
Зарегистрирован: 2022-06-19
Сообщения: 75
Репутация: +  3  -
Профиль   Отправить e-mail  

обновление спарсинговых данных(курса валют) в боте размещенном на хостинге

VANISHED

Отредактировано ntram (Окт. 13, 2022 15:47:35)

Офлайн

#3 Июль 4, 2022 19:14:09

nkv
Зарегистрирован: 2022-07-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

обновление спарсинговых данных(курса валют) в боте размещенном на хостинге

ntram
смотри, есть такой дропдаун , на него наводи мышку и там есть кнопка “Python”, на нее нажимаешь и в между тегами пишешь свой код
 import requests
from bs4 import BeautifulSoup
def f(m, url):
    source = requests.get(url)
    main_text = source.text
    soup = BeautifulSoup(main_text, 'html.parser')
    table = soup.findAll('td')
    table = str(table)
    n = ''
    for i in table: #отбирает с строки только числа
        if i.isdigit():
            n += i
        else:
            if n.isdigit():
                m.append(float(n))
                n = ''
    if n != '':
        m.append(float(n))
m = []
url = 'url_сайта'
f(m, url)
if len(m) < 100:
    dollar_buy = (m[0])
    dollar_sale = (m[2])
    euro_buy = (m[4])
    euro_sale = (m[6])
    tenge_buy = (m[9])
    tenge_sale = (m[11])

Отредактировано nkv (Июль 4, 2022 19:15:22)

Офлайн

#4 Июль 4, 2022 19:33:27

ntram
Зарегистрирован: 2022-06-19
Сообщения: 75
Репутация: +  3  -
Профиль   Отправить e-mail  

обновление спарсинговых данных(курса валют) в боте размещенном на хостинге

VANISHED

Отредактировано ntram (Окт. 13, 2022 15:47:44)

Офлайн

#5 Июль 4, 2022 20:32:10

nkv
Зарегистрирован: 2022-07-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

обновление спарсинговых данных(курса валют) в боте размещенном на хостинге

ntram
Спасибо!

Офлайн

#6 Июль 4, 2022 20:34:28

ntram
Зарегистрирован: 2022-06-19
Сообщения: 75
Репутация: +  3  -
Профиль   Отправить e-mail  

обновление спарсинговых данных(курса валют) в боте размещенном на хостинге

VANISHED

Отредактировано ntram (Окт. 13, 2022 15:47:48)

Офлайн

#7 Июль 4, 2022 20:40:46

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

обновление спарсинговых данных(курса валют) в боте размещенном на хостинге

ntram
ух
а нафига передавать в функцию пустой список и совершать над ним побочные эффекты? Гораздо же кошернее просто вернуть новое значение из функции. Причем в вашем случае список не нужен вообще, сделайте красиво - пусть это будет генератор



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version