2016-12-03 84 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

你可以構建一個GUI來達到你想要的東西 - https://開頭的文檔.python.org/3 /庫/ tk.html。 – wwii

回答

1

您可以通過打印「\ b」按鈕刪除以前打印字符串,然後在同一行上打印實現它:

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

現在它是完美的。非常感謝你,先生 –