在《零基础学编程021:获取股票实时行情数据》这一节里,我们利用urllib抓取新浪财经中的股票数据,可以取出谷歌股票的开盘价,回顾一下代码:
import urllib.request as req
with req.urlopen('http://hq.sinajs.cn/list=gb_goog') as f :
hq = f.read().decode('GBK')
v = hq.split(',')
print(v[1])
但我们很多时候并不需要也不应该从零开始构建一个程序,大量的程序员已经构建了丰富的而且免费的模块供我们使用。编程领域中流行着一句非常有名的话,叫做“不要重复发明轮子(Don't Reinvent the Wheel)”,意思是说不要重新去写别人已经写好的、甚至已经优化过的基本函数。
程序员通常会看不起别人写的代码,所以重复发明了一个又一个的轮子,但他写的代码也好不到哪里去。因为一串代码从表面上看比较简单,但实际动手时会遇到许多复杂的情况,有时需要花费大量的时间才能让程序不出错,并且性能稳定。所以,如果有比较可信的代码库,又不侵犯版权的情况下,尽量还是用别人写好的代码库更能节省时间。
Python中已经建立了一个庞大的代码库社区,称作 Python Package Index,简称Pypi,网址:https://pypi.python.org。世界各地的程序员们已经贡献了无数的优秀的模块,在动手写一个程序时,记得到这个网站上搜一搜有没有可以直接拿来就用的函数,站在巨人们的肩膀上,写起程序来又快又好。
对于我们文章开头提到的功能,在Pypi中就有一个现成的提到股票行情的模块库,叫yahoo-finance,看看该模块库的简单帮助说明,几行代码就可以取出开盘价。这个代码库的优点在于还提供了几十个其它功能,包括取出历史行情数据,这个功能我们将来会用到。
from yahoo_finance import Share
openPrice = Share('goog').get_open()
print(openPrice)
对于新手来说,上面的代码一运行就会报错,是import语句执行的时候提示找不到yahoo_finance包。所以,最值得一提的是安装这个yahoo-finance模块库的过程,将来安装其它任何模块库也如法炮制即可。
如今的Python已经极大地简化了模块安装的过程,它就是 pip,在python2.7.9和python 3.4之后的安装版本中都已经内置了pip,只要有网络,安装任何模块库,一般只需要一个命令就可以搞定。
pip 是“Pip Installs Packages”的缩写,是一个专门用于管理Python软件包的程序,运行这条命令:
python -m pip install yahoo-finance
新手不知道在哪里运行上面那条命令,如果环境不正确(PATH环境变量问题),在cmd.exe黑窗口中运行也会出错。如果你安装了WinPython,则运行那个WinPython Command Prompt.exe,在这个黑窗口中执行pip命令即可。安装过程是全自动的,成功后会给出相应的提示。
小结:
--- END ---