#部分网站api数据有bug,这个bug问题不是自身程序的问题,而是第三方公司股票的问题

author = ‘nooper’

import re
from math import ceil
import datetime

from httpGet import httpGetContent
from common import decimal

def _get_content(content):
“处理腾讯股票数据接口信息”
regex = re.compile(r’"(.*)"’)
result = regex.findall(content)
if result:
return result[0].split(’~’)

def getStockPosition(code, market):
“”"
处理股票盘口数据分析,分析所占的百分比率
http://qt.gtimg.cn/q=s_pksz000858
v_s_pksz000858=“0.1960.2580.221~0.325”;
以 ~ 分割字符串中内容,下标从0开始,依次为:
0: 买盘大单
1: 买盘小单
2: 卖盘大单
3: 卖盘小单
所占有的百分比百分比率
“”"
if code and market:
url = “http://qt.gtimg.cn/q=s_pk%s%s” % (market, code)
content = httpGetContent(url)
if content:
result_list = _get_content(content)
if result_list:
stock_dict = {}
stock_dict[“code”] = code
stock_dict[“market”] = market
stock_dict[“buy_big_percent”] = float(result_list[0]) # 买盘大单所占百分比
stock_dict[“buy_small_percent”] = float(result_list[1]) # 买盘小单所占百分比
stock_dict[“sell_big_percent”] = float(result_list[2]) # 卖盘大单所占比重
stock_dict[“sell_small_percent”] = float(result_list[3]) # 买盘小单所占比重
stock_dict[“date”] = datetime.date.today()
return stock_dict

todo 数据对不上

def getStockCashFlow(code, market):
“”“得到股票是资金流入流出
http://qt.gtimg.cn/q=ff_sz000858
v_ff_sz000858=“sz00085841773.6748096.67-6322.99-5.5310200.8914351.02-4150.13-3.63114422.2553015.9059770.57五 粮 液~20121221”;
以 ~ 分割字符串中内容,下标从0开始,依次为:
0: 代码
1: 主力流入
2: 主力流出
3: 主力净流入
4: 主力净流入/资金流入流出总和
5: 散户流入
6: 散户流出
7: 散户净流入
8: 散户净流入/资金流入流出总和
9: 资金流入流出总和1+2+5+6
10: 未知
11: 未知
12: 名字
13: 日期
“””
if code and market:
url = “http://qt.gtimg.cn/q=ff_%s%s” % (market, code)
content = httpGetContent(url)
if content:
result_list = _get_content(content)
if result_list:
stock_dict = {}
stock_dict[“code”] = code
stock_dict[“main_inflow”] = float(result_list[1]) # 主力流入
stock_dict[“main_outflow”] = float(result_list[2]) # 主力流出
stock_dict[“main_netflow”] = float(result_list[3]) # 主力净流入

            stock_dict["small_inflow"] = float(result_list[5])  # 散户流入stock_dict["small_outflow"] = float(result_list[6]) # 散户流出stock_dict["small_netflow"] = float(result_list[7]) # 散户净流入income = stock_dict["main_inflow"] + stock_dict["small_inflow"]outcome = stock_dict["main_outflow"] + stock_dict["main_outflow"]print incomeprint outcomeprint income - outcomestock_dict["unknown_1"] = float(result_list[10])stock_dict["unknwon_2"] = float(result_list[11])stock_dict["date"] = result_list[13]                # 日期return stock_dict

def getStockCurrentDay(code, Market):
‘’’
获取股票当日数据
腾讯API
API地址:http://qt.gtimg.cn/q=sh600383
sh:上海
sz:深圳
返回当天成交数据
code:股票代码
market:股票市场
数据返回@return dict
‘’’
if code and Market:
url = ‘http://qt.gtimg.cn/q=%s%s’ % (Market, code)
headers = {‘Content-type’: ‘application/x-javascript; charset=GBK’}
result = httpGetContent(url=url, headers=headers, charset=‘gbk’)
if result:
stocklist = _get_content(result)
if stocklist:
stockdict = {}
stockdict[‘code’] = code # 股票代码
stockdict[‘name’] = unicode(stocklist[1], ‘utf8’) # 股票名称
stockdict[‘last_closing’] = float(stocklist[4]) # 昨日收盘价格
stockdict[‘start’] = float(stocklist[5]) # 开盘价格
stockdict[‘end’] = float(stocklist[3]) # 当前收盘价格(可以是当前价格)
stockdict[‘high’] = float(stocklist[33]) # 最高价格
stockdict[‘low’] = float(stocklist[34]) # 最低价格
stockdict[‘buyvol’] = int(stocklist[7]) # 外盘 todo 数据对不上
stockdict[“sellvol”] = int(stocklist[8]) # 内盘 todo 数据对不上

            stockdict['range_price'] = float(stocklist[31])    # 涨跌价格stockdict['range_percent'] = float(stocklist[32])  # 涨跌比%stockdict['volume'] = int(stocklist[6])            # 成交量(手)stockdict['total_price'] = int(stocklist[37])      # 成交额(万元)stockdict['change_rate'] = decimal(stocklist[38]) # 换手率stockdict['pe'] = decimal(stocklist[39])          # 市盈率stockdict['swing'] = float(stocklist[43])           # 振幅stockdict['pb'] = float(stocklist[46])              # 股票市净率stockdict['date'] = stocklist[30][:8]               # 时间stockdict["block"] = False if stockdict["start"] else True #股票是否停牌return stockdict

def getStockMarket(code):
“”"
大盘数据接口信息
上证:code:000001 set=zs
深证:code:399001 set=zs
中小板:code:399005 set=zs
创业板: code:399006 set=zs
http://q.stock.sohu.com/qp/hq?type=snapshot&code=000001&set=zs
“”"
url = “http://q.stock.sohu.com/qp/hq?type=snapshot&code=%s&set=zs” % code

result = httpGetContent(url=url, charset="gbk")
if result:result = eval(result)stock_dict = {}stock_dict["date"] = result[0][:10] #日期stock_dict["name"] = unicode(result[2], 'utf8') #名称stock_dict["range_price"] = float(result[4]) #上涨价格stock_dict["range_percent"] = float(result[5].strip("%")) #涨幅stock_dict["start"] = float(result[9]) #开盘价格stock_dict["high"] = float(result[11]) #最高价格stock_dict["low"] = float(result[13]) #最低价格stock_dict["last_closing"] = float(result[7]) #昨日收stock_dict["end"] = float(result[3]) #收盘价格stock_dict["total_sum"] = int(result[18]) #多少万元stock_dict["volume"] = int(result[14]) #多少手return stock_dict

tonghuashun_headers = {
“Accept”: “text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8”,
“Accept-Encoding”: “gzip,deflate,sdch”,
“Accept-Language”: “zh-CN,zh;q=0.8”,
“Cache-Control”: “no-cache”,
“Connection”: “keep-alive”,
“Host”: “qd.10jqka.com.cn”,
“User-Agent”: “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36”
}

def getstockBlock():

“”"

新浪股票黑名单数据

”需要得到单点登录信息“

新浪股票黑名单个股

http://weibo.gxq.com.cn/stock/disallowStock

“”"

headers = {

‘Accept’: ‘text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8’,

‘Cache-Control’: “max-age=0”,

‘Host’: ‘weibo.gxq.com.cn’,

‘User-Agent’: ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36’,

‘Cookie’: “PHPSESSID=c32fbi3m3sf0he8v1rdem3t006; gxqSignId=02d9c361fe5fc1ab; WBStore=d6acd6adea5a82d3|undefined”

}

url = “http://weibo.gxq.com.cn/stock/disallowStock”

content = httpGetContent(url=url, headers=headers)

if content:

soup = BeautifulSoup(content)

td_list = soup.find_all(text=re.compile(’\d+’))

return td_list

def __convert_MIN(content):
content = content.split(’=’)[1]
content_list = content.split(’|’)
stock_dict = {}
for sub in content_list:
if sub:
items = sub.split(’~’)
date = items[0]
price_list = items[1].split(’;’)
price_dict = {}
for a in price_list:
b = a.split(’,’)
start = float(b[0]) #开盘价
high = float(b[1]) #最高价格
low = float(b[2]) #最低价格
end = float(b[3]) #结束价格
volum = int(ceil(float(b[4]))) #成交量多少买入
total_price = int(ceil(float(b[5]))) #成交额
time = b[6] #时间格式是1030,11:30,1400,1500

            price_dict[time] = {"high": high,'low': low,"end": end,"start": start,"volumn": volum,"total_price": total_price}stock_dict[date] = price_dict
return stock_dict

def getStock60MIN(code, market, type=’’):
“”"
不推荐向后复权
得到股票60分钟数据线
API接口数据
http://qd.10jqka.com.cn/api.php?p=stock_min60&info=k_sz_000005&fq=q
q是向前复权
b事项后复权
q= 空是不复权
“”"
if market not in (‘sz’, ‘sh’):
return

url = "http://qd.10jqka.com.cn/api.php?p=stock_min60&info=k_%s_%s&fq=%s" % (market, code, type)content = httpGetContent(url=url)
if content:return __convert_MIN(content)

def getStock30MIN(code, market, type=’’):
“”"
30分钟数据接口信息
http://qd.10jqka.com.cn/api.php?p=stock_min30&info=k_sz_000005&fq=
“”"
if market not in (‘sz’, ‘sh’):
return
url = “http://qd.10jqka.com.cn/api.php?p=stock_min30&info=k_%s_%s&fq=%s” % (market, code, type)
content = httpGetContent(url=url)
if content:
return __convert_MIN(content)

def getStock15MIN(code, market, type=’’):
“”"
15分钟数据接口
http://qd.10jqka.com.cn/api.php?p=stock_min15&info=k_sz_000005&fq=
“”"
if market not in (‘sz’, ‘sh’):
return
url = “http://qd.10jqka.com.cn/api.php?p=stock_min15&info=k_%s_%s&fq=%s” % (market, code, type)
content = httpGetContent(url=url)
if content:
return __convert_MIN(content)

def __convert_inner(stock, stock_dict={}):
stock_day = stock.split(’,’)
if all(stock_day):
date = stock_day[0] #日期
start = float(stock_day[1]) #开盘价格
high = float(stock_day[2]) #最高价格
low = float(stock_day[3]) #最低价格
end = float(stock_day[4]) #收盘价格
volume = int(ceil(float(stock_day[5]))) #成交量
total = int(ceil(float(stock_day[6]))) #成交额

    stock_dict[date] = {"date": date,'start': start,'high': high,'low': low,'end': end,'volume': volume,'total': total,}return stock_dict

def __convert_day(content):
stock_list = content.split(’=’)[1].split(’|’)
stock_dict = {}
for stock in stock_list:
if stock and stock.strip():
__convert_inner(stock, stock_dict)
# stock_day = stock.split(’,’)
# date = stock_day[0] #日期
# start = stock_day[1] #开盘价格
# high = stock_day[2] #最高价格
# low = stock_day[3] #最低价格
# end = stock_day[4] #收盘价格
# volume = int(ceil(float(stock_day[5]))) #成交量
# total = int(ceil(float(stock_day[6]))) #成交额
# stock_dict[date] = {
# “date”: date,
# ‘start’: start,
# ‘high’: high,
# ‘low’: low,
# ‘end’: end,
# ‘volume’: volume,
# ‘total’: total,
# }
return stock_dict

def __convert_week(content):
content_list = content.split(’;’)
regex = re.compile(’=(.*)$’)
stock_dict = {}
for s in content_list:
p = regex.findall(s)[0]
stock_list = p.split(’|’)
for week in stock_list:
if week:
__convert_inner(week, stock_dict)

return stock_dict

#todo 测试完成
def getStockDayHistory(code, market, year=‘2013’, type=’’):
“”"
http://qd.10jqka.com.cn/api.php?p=stock_day&info=k_sz_000005&year=2012,2013&fq=
sz:深证
sh:上海
return dict
“”"
url = “http://qd.10jqka.com.cn/api.php?p=stock_day&info=k_%s_%s&year=%s&fq=%s” % (market, code, year, type)
content = httpGetContent(url=url)
if content:
return __convert_day(content)

#todo 测试完成
def getStockWeekHistory(code, market, year=‘2012,2013’, type=’’):
“”"
xhttp://qd.10jqka.com.cn/api.php?p=stock_week&info=k_sz_000005&year=2011,2012,2013&fq=
pass
“”"
url = “http://qd.10jqka.com.cn/api.php?p=stock_week&info=k_%s_%s&year=%s&fq=%s” % (market, code, year, type )
content = httpGetContent(url, tonghuashun_headers)
if content:
return __convert_week(content)

def __convertMonth(content):
pass

def getStockMonthHistory(code, market, type=’’):
“”"
http://qd.10jqka.com.cn/api.php?p=stock_month&info=k_sz_000671&fq=
“”"
url = “http://qd.10jqka.com.cn/api.php?p=stock_month&info=k_%s_%s&fq=%s” % (market, code, type)
content = httpGetContent(url)
if content:
pass

def main():
# g = getStock60MIN(‘600847’, ‘sh’)
# for k in g:
# print k
# print g[k]
# g = getStockDayHistory(“600198”, “sh”)
# print g

# import config
#
# print getStockMarket(config.SHANGHAI)
print getStockCurrentDay("600383", "sh")

if name == “main”:
main()
详情:http://xcjcy.org/

python获取股票数据接口相关推荐

  1. 如何通过python获取股票数据接口l2?

    python提供了股票数据接口库Tushare,但用Tushare获取股票实时数据存在只能连续运行2次,就会被网站服务器禁止. 如使用以下代码: #导入模块 import tushare as ts ...

  2. matlab python 股票,股票行情数据获取-Python获取股票数据?

    Python获取股票数据? 这里推荐一个包―tushare,tushare是一个免费.开源的python财经数据接口包.主要实现了从数据采集.清洗加工到数据存储过程,能够为金融分析人员提供快速.整洁的 ...

  3. Python获取股票数据并绘制相应K线图,看这个就够了!

    Python对股票的K线可视化 前言 说明 注意 数据获取 Tushare获取股票数据 获取医疗器械板块数据(代码部分) 获取股票数据(代码部分) 数据预处理 变量中文化(代码部分) K线绘制 代码部 ...

  4. python获取股票数据,并计算技术指标

    python获取stock数据. 计算技术指标使用talib库. 方法一:使用 pandas_datareader.data 库,该库获取的历史数据更多一些.上证股票在股票代码后面加上".S ...

  5. python tushare获取股票数据并可视化_使用Python获取股票数据Tushare

    最近不是在炒股吗,挣点儿零花钱,权当学习金融知识了,前几天了解到转债,T+0,这个东西有点儿刺激啊,哈哈,就是老去看手机,实在有点儿耽误事儿,就想着,用python把股票价格拉下来,如果有上下的变动, ...

  6. python tushare获取股票数据并可视化_荐Python获取股票数据及其可视化--基于tushare库...

    01 Tushare简介 Tushare是一个金融大数据开放社区,它免费提供各类金融数据和区块链数据 , 助力智能投资与创新型投资.在Tushare 旧版 运行了3年后,Tushare Pro终于要跟 ...

  7. Python获取股票数据及其可视化--基于tushare库

    01 Tushare简介 Tushare是一个金融大数据开放社区,它免费提供各类金融数据和区块链数据 , 助力智能投资与创新型投资.在Tushare 旧版 运行了3年后,Tushare Pro终于要跟 ...

  8. python获取股票数据_python根据股票代码获取当前数据

    1.[代码][Python]代码 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib2 import re import datet ...

  9. 使用Python获取股票数据(csv文件)

    运行效果 代码 import tushare as ts import matplotlib.pyplot as pltdf1 = ts.get_k_data('600519', ktype='D', ...

最新文章

  1. 神经网络有什么理论支持? 本文作者:AI研习社 2017-11-08 18:30 导语:问:神经网络有什么理论支持? 答:目前为止(2017 年)没有什么特别靠谱的。 雷锋网按:本文原作者袁洋
  2. CentOS下搭建Squid代理服务器
  3. 动态添加JavaScript
  4. docker与jenkins学习
  5. web开发集成数字证书_每个数字设计师都应该知道的Web开发的七个原则
  6. 中路径查找器的功能_还在用路径查找器?试试它吧!
  7. 最新 PMP 考试真题概要及答案分析(中文版)(1)
  8. API 接口压力测试
  9. 服务器网卡无法开启lldp协议,lldp支持-VMware vSphere - 思科华为论坛
  10. 数据结构实验三 线性表的链式存储结构及实现
  11. 怎么修改PDF文件中的文字?快来学这两种方法
  12. HTML5 通过Vedio标签实现视频循环播放
  13. Mysql基本语法及其操作(三)
  14. 史上最全的英语连读规则一网打尽
  15. 语音识别(ASR)论文优选:Adapting GPT, GPT-2 and BERT Language Models for Speech Recognition
  16. win10matlab2016启动卡,教你解决win10专业版开机卡死的方法
  17. 人人网发布QQ劝架补丁 同时兼容QQ及360
  18. initWithFrame/initWithCode/awakeFromNib调用
  19. vue是怎么实现数据响应式的?
  20. ENSP的AR40问题解决

热门文章

  1. 新西兰信报:移民规则变化 赴新中国学生人数减少
  2. faker和劫的图片_这张图影响了LOL玩家多年,劫的新皮肤首次摘下面具
  3. discuz帖子列表页调用帖子作者头像
  4. Python学习(十一)Python标识符命名规范
  5. 电视台的流媒体地址 mms
  6. 剪贴板占用计算机的内存,王朝知道我提了几个问题后,电脑就说内存不足,然后死机,怎么办?...
  7. 利用旧电脑去搭建linux服务器
  8. 当了一次人肉SMT贴片机后的感悟
  9. 超融合一定会成为主流
  10. Houdini文件格式介绍指南