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

现在它是完美的。非常感谢你,先生 –