2016-12-03 9 views
0

Я очень новый, и я полностью застрял в недавней задаче. Я хочу автоматически обновлять цену акции автоматически, поскольку она меняется. Я ломаю nasdaq.com сайт для фактической внутридневной цены. У меня есть недавний код:Обновление информации о ценах акций

import bs4 as bs 
import urllib 
tiker = input("zadaj ticker: ") 
url = urllib.request.urlopen("http://www.nasdaq.com/symbol/"+tiker+"/real-time") 
stranka = url.read() 
soup = bs.BeautifulSoup(stranka, 'lxml') 
print (tiker.upper()) 
for each in soup.find('div', attrs={'id': 'qwidget_lastsale'}): 
    print(each.string) 

Я был только в состоянии сделать бесконечное время цикла Правда, но я испачкать в строках, несмотря я хочу изменить только одну строку, как фактическая цена меняется. очень благодарю вас за ваши заметки.

+0

Вы можете построить графический интерфейс для достижения того, что вы хотите - https: // документы .python.org/3/библиотека/tk.html. – wwii

ответ

1

Вы можете достичь его, напечатав «\ б», чтобы удалить ранее напечатанную строку, а затем печать на той же строке:

import bs4 as bs 
import urllib 
import time 
import sys 

tiker = input("zadaj ticker: ") 
print (tiker.upper()) 
written_string = '' 
while True: 
    url = urllib.request.urlopen("http://www.nasdaq.com/symbol/"+tiker+"/real-time") 
    stranka = url.read() 
    soup = bs.BeautifulSoup(stranka, 'lxml') 
    for each in soup.find('div', attrs={'id': 'qwidget_lastsale'}): 
     for i in range(len(written_string)): 
      sys.stderr.write("\b") 
     sys.stderr.write(each.string) 
     written_string = each.string 
    time.sleep(1) 
+0

спасибо, сэр. Можете ли вы дать мне подсказку о том, как перезаписать предыдущую печать по мере изменения цены ... Ваш код просто печатает цены в строке, но хочет только один отпечаток, который меняется с изменением цены. –

+0

Я изменил пример, этот должен работать сейчас. – vpekar

+0

сейчас он совершенен. очень спасибо, сэр –