#python
#python
Вопрос:
Я создал код, который постоянно обновляет все значения валют по всему миру. В настоящее время в коде отображается только значение в евро, Когда оно должно отображать доллары США, евро, рупии и т. Д. Может кто-нибудь, пожалуйста, скажите мне, почему это отображает только одно значение?
import time
import os
import requests
from bs4 import BeautifulSoup
def refresh():
URL = "https://www.x-rates.com/table/?from=USDamp;amount=1"
r = requests.get(URL)
soup = BeautifulSoup(r.content, 'html.parser')
ratelist = soup.findAll("table", {"class": "ratesTable"})[0].findAll("tbody")
for tableVal in ratelist:
trList = tableVal.findAll('tr')
for trVal in trList[:6]:
print(trVal.text)
time.sleep(5)
os.system('cls')
refresh()
refresh()
Хорошего дня,
Bipolar Sheep
Комментарии:
1. Кроме того, вы не должны использовать рекурсию для этого
Ответ №1:
Я бы сказал, что ваш последний оператор refresh() должен находиться за пределами циклов for .
В вашем коде он обновляется после печати первого trVal, поэтому он снова запускает оператор refresh() . Пожалуйста, попробуйте эту версию :
import time
import os
import requests
from bs4 import BeautifulSoup
def refresh():
URL = "https://www.x-rates.com/table/?from=USDamp;amount=1"
r = requests.get(URL)
soup = BeautifulSoup(r.content, 'html.parser')
ratelist = soup.findAll("table", {"class": "ratesTable"})[0].findAll("tbody")
for tableVal in ratelist:
trList = tableVal.findAll('tr')
for trVal in trList[:6]:
print(trVal.text)
time.sleep(5)
os.system('cls')
refresh()
refresh()
РЕДАКТИРОВАТЬ: я также решил удалить os.system (‘cls’) из циклов.