您的位置:首页 > 编程语言 > Python开发

Python脚本:获取股票信息

2015-08-23 13:43 579 查看
在水木上看到有人在问到想用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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: