Python脚本:获取股票信息

在水木上看到有人在问到想用python去获取股票的信息,sina finance上面的那些数据的是通过js控制的,会根据股票代码去获取实时信息然后根据用户友好的方式展示出来。
首先,新浪的一个url让我们可以获取股票的信息:http://hq.sinajs.cn/?list=sh600000
然后,我简单写了个程序可以将其中有用的股票名称/当前价格/涨跌幅等信息提取出来。本来是不难的,只是在数字的处理和格式化输出这两方面,我还找了些资料看了下才实现了。
实现的输出如下:
—————————————————————
股票名称:超图软件   涨跌幅:2.07   最新价:22.73
股票名称:浪潮信息   涨跌幅:-2.91  最新价:19.33
股票名称:东软集团   涨跌幅:-3.93  最新价:10.52
股票名称:涪陵电力   涨跌幅:0.0     最新价:11.31
股票名称:中金黄金   涨跌幅:-2.01  最新价:22.41
—————————————————————-

简单的代码实现如下:
#! /usr/bin/python3
# coding=utf-8

”’
Created on Nov 9, 2011

@author: 笑遍世界
”’

import urllib.request

def get_price(code):
        url = ‘http://hq.sinajs.cn/?list=%s’ % code
        req = urllib.request.Request(url)
#如果不需要设置代理,下面的set_proxy就不用调用了。由于公司网络要代理才能连接外网,所以这里有set_proxy…
        req.set_proxy(‘proxy.XXX.com:911’, ‘http’)
        content = urllib.request.urlopen(req).read()
        str = content.decode(‘gbk’)
        data = str.split(‘”‘)[1].split(‘,’)
        name = “%-6s” % data[0]
        price_current = “%-6s” % float(data[3])
        change_percent = ( float(data[3]) – float(data[2]) )*100 / float(data[2])
        change_percent = “%-6s” % round (change_percent, 2)
        print(“股票名称:{0} 涨跌幅:{1} 最新价:{2}”.format(name, change_percent, price_current) )

def get_all_price(code_list):
    for code in code_list:
        get_price(code)

code_list = [‘sz300036’, ‘sz000977’, ‘sh600718’, ‘sh600452’, ‘sh600489’]
get_all_price(code_list)

master

Stay hungry, stay foolish.

发表评论

电子邮件地址不会被公开。 必填项已用*标注