Я построил небольшую программу, которая просматривает цены акций из финансов Yahoo для тикеров, которые я ввожу. Вы можете ввести столько тикеров, сколько хотите. Его работы ОТЛИЧНЫЕ !!!! - Для извлечения и печати данных. Тем не менее, печать продолжает печатать тикер и затем курс акций. Он будет продолжать извлекать данные о запасах (с учетом счетчика, который я встроил), но также печатать тикер. Я хотел бы, чтобы вывод на печать был более в столбчатой форме - с тикерами в верхней части, а затем просто с ценами на акции под правильным тикером и т. Д. c.
. Я бы хотел, чтобы он распечатал что-то как:
GOOG AMZN FB $1,263.64 $2,371.55 $182.74
$1,263.61 $2,370.51 $182.65 $1,262.98 $2,371.52 $182.71
Но это печатает:
GOOG $1,263.64 FB $182.74 AMZN $2,371.55 GOOG $1,263.64 FB
$182.76 AMZN $2,371.55 GOOG $1,263.64 FB $182.74 AMZN $2,371.55
import bs4
import requests
from bs4 import BeautifulSoup
import time
tickers = []
price_list = []
name = None
pull_count = 0
while name != "":
name = input('Enter a ticker (enter"") to end: ')
if name != "":
tickers.append(name)
# print(tickers)
while pull_count < 3:
pull_count += 1
for ticker in tickers:
url = "https://finance.yahoo.com/quote/" + ticker
response = requests.get(url)
soup = BeautifulSoup(response.text, "lxml")
price = (
soup.find_all("div", {"class": "My(6px) Pos(r) smartphone_Mt(6px)"})[0]
.find("span")
.text
)
price = price.replace(",", "")
price = float(price) # converts these to numbers
print(
"{:^5}".format(ticker)
) # print("{:^5}".format(ticker), " ", ("{:^5}".format(ticker2)))
print("${:4,.2f}".format(price))
print("PROGRAM ENDED")