實時股票數據接口大全


股票數據的獲取目前有如下兩種方法可以獲取:
1.http/javascript接口取數據
2.web-service接口
1.http/javascript接口取數據
1.1Sina股票數據接口
以大秦鐵路(股票代碼:601006)為例,如果要獲取它的最新行情,只需訪問新浪的股票數據
接口:
http://hq.sinajs.cn/list=sh601006這個url會返回一串文本,例如:
var hq_str_sh601006="大秦鐵路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92,
22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89, 14300,
26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32";
這個字符串由許多數據拼接在一起,不同含義的數據用逗號隔開了,按照程序員的思路,順序號從0開始。
0:”大秦鐵路”,股票名字;
1:”27.55″,今日開盤價;
2:”27.25″,昨日收盤價;
3:”26.91″,當前價格;
4:”27.55″,今日最高價;
5:”26.20″,今日最低價;
6:”26.91″,競買價,即“買一”報價;
7:”26.92″,競賣價,即“賣一”報價;
8:”22114263″,成交的股票數,由於股票交易以一百股為基本單位,所以在使用時,通常把該值除以一百;
9:”589824680″,成交金額,單位為“元”,為了一目了然,通常以“萬元”為成交金額的單位,所以通常把該值除以一萬;
10:”4695″,“買一”申請4695股,即47手;
11:”26.91″,“買一”報價;
12:”57590″,“買二”
13:”26.90″,“買二”
14:”14700″,“買三”
15:”26.89″,“買三”
16:”14300″,“買四”
17:”26.88″,“買四”
18:”15100″,“買五”
19:”26.87″,“買五”
20:”3100″,“賣一”申報3100股,即31手;
21:”26.92″,“賣一”報價
(22, 23), (24, 25), (26,27), (28, 29)分別為“賣二”至“賣四的情況”
30:”2008-01-11″,日期;
31:”15:05:32″,時間;
這個接口對於JavaScript程序非常方便,通常的使用方式為,靜態或動態地在頁面中插入:
<script type="text/javascript" src="
http://hq.sinajs.cn/list=sh601006" charset="gb2312">
</script>
<script type="text/javascript">
var elements=hq_str_sh601006.split(",");
document.write("current price:"+elements[3]);
</script>
這段代碼輸出大秦鐵路(股票代碼:601006)的當前股價
current price:14.20
如果你要同時查詢多個股票,那么在URL最后加上一個逗號,再加上股票代碼就可以了;比如你要一次查詢大秦鐵路(601006)和大同煤業(601001)的行情,就這樣使用URL:
http://hq.sinajs.cn/list=sh601003,sh601001
但如果你要查詢大盤指數,情況會有不同,比如查詢上證綜合指數(000001),使用如下URL:
http://hq.sinajs.cn/list=s_sh000001 服務器返回的數據為:
var hq_str_s_sh000001="上證指數,3094.668,-128.073,-3.97,436653,5458126";
數據含義分別為:指數名稱,當前點數,當前價格,漲跌率,成交量(手),成交額(萬元);
查詢深圳成指的URL為:
http://hq.sinajs.cn/list=s_sz399001
對於股票的K線圖,日線圖等的獲取可以通過請求http://image.sinajs.cn/…./…/*.gif此URL獲取,其中*代表股票代碼,詳見如下:
查看日K線圖:
http://image.sinajs.cn/newchart/daily/n/sh601006.gif
分時線的查詢:
http://image.sinajs.cn/newchart/min/n/sh000001.gif
日K線查詢:
http://image.sinajs.cn/newchart/daily/n/sh000001.gif
周K線查詢:
http://image.sinajs.cn/newchart/weekly/n/sh000001.gif
月K線查詢:
http://image.sinajs.cn/newchart/monthly/n/sh000001.gif
1.2              Baidu Google的財經數據
在baidu ,google中搜索某只股票代碼時,將會在頭條顯示此股票的相關信息,例如在google搜索601006時,
第一條搜索結果如下圖:
通過點擊左邊的圖片我們發現會將此圖片鏈接到sina財經頻道上,也就是說google股票數據的獲取也是從sina獲取。后經抓包分析,
發現google也是采用1.1中介紹的接口。
Baidu的股票數據來自baidu的財經頻道
http://stock.baidu.com.
1.3              其他方式
除了sina,baidu等網站提供股票信息外,其他網站也有類似的接口。我們分析了一款論壇上采用的股票插件,
其中有關於實時股票數據獲取的介紹,詳見如下代碼,其中可以看到有些數據來自sina。
<%
‘==========================
‘ file: stock_getdata.asp
‘ version: 1.0.0
‘ copyright (c) czie.com all rights reserved.
‘ web: 
http://www.czie.com
‘==========================
function gethttp(rurl)
                   dim xml
                   on error resume next
                   set xml=server.createobject("Microsoft.XMLHTTP")
                   xml.open "get",rurl,false
                   xml.send
                   if not xml.readystate=4 or not xml.status=200 or err then gethttp="":exit function
                   gethttp=xml.responsetext
                   set xml=nothing
         end function
         function getstockdata(code)
                   ‘0=股票名稱,1=開盤價格,2=昨收盤價格,3=當前價格,4=最高價,5=最低價,30,31=更新時間
                   dim checkcode,stockdata,stockdatasplit
                   if len(code)<5 then stockdata="0,0,0,0,0,0,0,0,0,0,0,0":exit function
                   checkcode=mid(code,len(code)-5,1)
                   if int(checkcode)<=4 then
                            stockdata=gethttp("
http://hq.sinajs.cn/list=sz"&code&"")
                            if not len(stockdata)=0 then stockdata=split(stockdata,chr(34))(1)
                   end if
                   if int(checkcode)>=5 then
                            stockdata=gethttp("
http://hq.sinajs.cn/list=sh"&code&"")
                            if not len(stockdata)=0 then stockdata=split(stockdata,chr(34))(1)
                   end if
                   if len(stockdata)=0 then
                            stockdata="0,0,0,0,0,0,0,0,0,0,0,0"
                   else
                            stockdatasplit=split(stockdata,",")
                   stockdata=""&exstock.checkstr(stockdatasplit(0))&","&stockdatasplit(1)&","&stockdatasplit(2)&","&stockdatasplit(3)&","&stockdatasplit(4)&","&stockdatasplit(5)&","&formatdatetime(""&stockdatasplit(30)&" "&stockdatasplit(31)&"",0)&""
                   end if
                   ‘0=股票名稱,1=開盤價格,2=昨收盤價格,3=當前價格,4=最高價,5=最低價,6=更新時間
                   getstockdata=stockdata
         end function
         function getstockimg(code)
                   dim rndnum,addnum,checkcode,imgsource
                   if len(code)<5 then exit function
                   addnum=4
                   randomize:rndnum=cint(rnd*addnum)
                   select case rndnum
                            case 0
                                     getstockimg="
http://www.10jqka.com.cn/curve/kline/?code="&code&""
                                     imgsource="
http://www.10jqka.com.cn"
                            case 1
                                     getstockimg="
http://stock.jrj.com.cn/htmdata/KLINE/"&code&".png"
                                     imgsource="
http://stock.jrj.com.cn"
                            case 2
                                     checkcode=mid(code,len(code)-5,1)
                                     if int(checkcode)<=4 then
                                               getstockimg="
http://image.sinajs.cn/newchart/daily/n/sz"&code&".gif"
                                     end if
                                     if int(checkcode)>=5 then
                                               getstockimg="
http://image.sinajs.cn/newchart/daily/n/sh"&code&".gif"
                                     end if
                                     imgsource="
http://finance.sina.com.cn"
                            case 3
                                     getstockimg="
http://hq.gazxfe.com/stockchart/realline.chart?"&code&"&1003&SZ 500 330"
                                     imgsource="
http://hq.gazxfe.com"
                            case 4
                                     getstockimg="
http://chartse.stockstar.com/chartserver?code="&code&""
                                     imgsource="
http://www.stockstar.com/"
                   end select
                   getstockimg=split(""&getstockimg&"||"&imgsource&"","||")
         end function
         function getastockimg()
                   dim rndnum,addnum,checkcode
                   dim getastockimgb,imgsource
                   addnum=6
                   randomize:rndnum=cint(rnd*addnum)
                   select case rndnum
                            case 0
                                     getastockimg="
http://202.109.106.1/gifchartse/gif/000001.gif"
                                     getastockimgb="
http://202.109.106.1/gifchartse/gif/399001.gif"
                                     imgsource="
http://www.stockstar.com/"
                            case 1
                                     getastockimg="
http://money.163.com/special/100.gif?C39"
                                     getastockimgb="
http://money.163.com/special/101.gif?HrS"
                                     imgsource="
http://www.163.com"
                            case 2
                                     getastockimg="
http://www.10jqka.com.cn/curve/realtime/index2.php?code=1a0001&w=180&h=140"
                                     getastockimgb="
http://www.10jqka.com.cn/curve/realtime/index2.php?code=399001&w=180&h=140"
                                     imgsource="
http://www.10jqka.com.cn"
                            case 3
                                     getastockimg="
http://chart.cnlist.com/stockchart/realline.chart?1a0001&1002&SZ 180 140"
                                     getastockimgb="
http://chart.cnlist.com/stockchart/realline.chart?399001&1002&SZ 180 140"
                                     imgsource="
http://chart.cnlist.com/"
                            case 4
                                     getastockimg="
http://image.sinajs.cn/newchart/small/ish000001.gif?1189176558328"
                                     getastockimgb="
http://image.sinajs.cn/newchart/small/isz399001.gif?1189176558328"
                                     imgsource="
http://www.sinajs.cn"
                            case 5
                                     getastockimg="
http://218.1.72.66/cgi/pic/sh/realtime/JA000001164143.png"
                                     getastockimgb="
http://218.1.72.66/cgi/pic/sz/realtime/JA399001164143.png"
                                     imgsource="
http://www.cnstock.com/"
                            case 6
                                     getastockimg="
http://222.73.29.85/img/000001.png"
                                     getastockimgb="
http://222.73.29.85/img/399001.png"
                                     imgsource="
http://www.eastmoney.com/"
                   end select
                   getastockimg=split(""&getastockimg&"||"&getastockimgb&"||"&imgsource&"","||")
         end function
%>
2.   web-service接口
2.1  CHINAstock的web-service:
http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx
中國股票行情數據 WEB 服務(支持深圳和上海股市的全部基金、債券和股票),數據即時更新。輸出GIF分時走勢圖、日/周/月 K 線圖、及時行情數據(股票名稱、行情時間、最新價、昨收盤、今開盤、漲跌額、最低、最高、漲跌幅、成交量、成交額、競買價、競賣價、委比、買一 - 買五、賣一 - 賣五)。此WEB服務提供了如下幾個接口:
2.1.1  getStockImageByCode
GET 股票GIF分時走勢圖
INput:theStockCode = 股票代號,如:sh000001
POST /WebServices/ChinaStockWebService.asmx HTTP/1.1
Host: 
www.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "
http://WebXml.com.cn/getStockImageByCode"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getStockImageByCode xmlns="
http://WebXml.com.cn/">
      <theStockCode>string</theStockCode>
    </getStockImageByCode>
  </soap:Body>
</soap:Envelope>
Output:
2.1.2 getStockImageByteByCode
獲得中國股票GIF分時走勢圖字節數組
INput:theStockCode = 股票代號,如:sh000001
POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: 
www.webxml.com.cnContent-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: "http://WebXml.com.cn/getStockImageByteByCode" <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  <soap:Body>    <getStockImageByteByCode xmlns="http://WebXml.com.cn/">      <theStockCode>string</theStockCode>    </getStockImageByteByCode>  </soap:Body></soap:Envelope>
返回的數據如下:
<?xml version="1.0" encoding="utf-8" ?>
  <base64Binary xmlns="
R0lGODlhIQIsAfcAAAAAAAwLBxkGBQ4ODhAQEBsSChUVFS4TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEAsI1QnFX8AgDU1NUozFlgxD6cBWVY5FnIwEmQ4Gc0AMlhDHPEADlVJMEpKSm1IHOUBWpY3FZMyVY9IGXRWIEFmWGNYUmpdPXJgHQB8HK9EGGBgX4lXIACoAHhkMyt4m4VkJtstbv8A">[url]http://WebXml.com.cn/">R0lGODlhIQIsAfcAAAAAAAwLBxkGBQ4ODhAQEBsSChUVFS4TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEAsI1QnFX8AgDU1NUozFlgxD6cBWVY5FnIwEmQ4Gc0AMlhDHPEADlVJMEpKSm1IHOUBWpY3FZMyVY9IGXRWIEFmWGNYUmpdPXJgHQB8HK9EGGBgX4lXIACoAHhkMyt4m4VkJtstbv8A[/url]
2.1.3  getStockImage_kByCode
直接獲得中國股票GIF日/周/月 K 線圖(545*300pixel/72dpi)
INPUT: theStockCode = 股票代號
      theType = K 線圖類型(D:日[默認]、W:周、M:月),
POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: 
www.webxml.com.cnContent-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: "http://WebXml.com.cn/getStockImage_kByCode" <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  <soap:Body>    <getStockImage_kByCode xmlns="http://WebXml.com.cn/">      <theStockCode>string</theStockCode>      <theType>string</theType>    </getStockImage_kByCode>  </soap:Body></soap:Envelope>
比如按照下圖所示輸入:
返回的結果就是周K線圖:
2.1.4  getStockImage_kByteByCode
獲得中國股票GIF日/周/月 K 線圖字節數組
Input:theStockCode = 股票代號,如:sh000001
POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: 
www.webxml.com.cnContent-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: "http://WebXml.com.cn/getStockImage_kByteByCode" <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  <soap:Body>    <getStockImage_kByteByCode xmlns="http://WebXml.com.cn/">      <theStockCode>string</theStockCode>      <theType>string</theType>    </getStockImage_kByteByCode>  </soap:Body></soap:Envelope>HTTP/1.1 200 OKContent-Type: text/xml; charset=utf-8Content-Length: length <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  <soap:Body>    <getStockImage_kByteByCodeResponse xmlns="http://WebXml.com.cn/">      <getStockImage_kByteByCodeResult>base64Binary</getStockImage_kByteByCodeResult>    </getStockImage_kByteByCodeResponse>  </soap:Body></soap:Envelope>比如按照下圖輸入

返回的結果就是周K線圖字節數組
<?xml version="1.0" encoding="utf-8" ?>
  <base64Binary xmlns="
R0lGODlhIQIsAfcAAAAAAAwLBxkGBQ4ODhAQEBsSChUVFS4TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEAsI1QnFX8AgDU1NUozFlgxD6cBWVY5FnIwEmQ4Gc0AMlhDHPEADlVJMEpKSm1IHOUBWpY3FZMyVY9IGXRWIEFmWGNYUmpdPXJgHQB8HK9EGGBgX4lXIACoAHhkMyt4m4VkJtstbv8A">[url]http://WebXml.com.cn/">R0lGODlhIQIsAfcAAAAAAAwLBxkGBQ4ODhAQEBsSChUVFS4TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEAsI1QnFX8AgDU1NUozFlgxD6cBWVY5FnIwEmQ4Gc0AMlhDHPEADlVJMEpKSm1IHOUBWpY3FZMyVY9IGXRWIEFmWGNYUmpdPXJgHQB8HK9EGGBgX4lXIACoAHhkMyt4m4VkJtstbv8A[/url]
2.1.5  getStockInfoByCode
獲得中國股票及時行情
input:theStockCode = 股票代號
POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: 
www.webxml.com.cnContent-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: "http://WebXml.com.cn/getStockInfoByCode" <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  <soap:Body>    <getStockInfoByCode xmlns="http://WebXml.com.cn/">      <theStockCode>string</theStockCode>    </getStockInfoByCode>  </soap:Body></soap:Envelope>返回的值一個一維字符串數組 String(24),結構為:String(0)股票代號、String(1)股票名稱、String(2)行情時間、String(3)最新價(元)、String(4)昨收盤(元)、String(5)今開盤(元)、String(6)漲跌額(元)、String(7)最低(元)、String(8)最高(元)、String(9)漲跌幅(%)、String(10)成交量(手)、String(11)成交額(萬元)、String(12)競買價(元)、String(13)競賣價(元)、String(14)委比(%)、String(15)-String(19)買一 - 買五(元)/手、String(20)-String(24)賣一 - 賣五(元)/手。
Web service的方法類似於現在concurrent項目的DBWS數據的獲取,都是通過SOAP協議向DBWS服務器獲取相關的數據。
利用雅虎查中國股票
http://quote.yahoo.com/d/quotes.csv?s=MSFT&f=slc1wop
返回微軟的股票價格
"MSFT","4:00pm - <b>30.70</b>",+1.04,"21.46 - 30.75",29.77,29.66
http://quote.yahoo.com/d/quotes.csv?s=000969.SZ&f=slc1wop
這個返回安泰科技的,一般有半個小時的延遲。
但是s=000969.sz 這個后面的sz是什么意思呢?
深圳:)
滬市是SS后綴

 =========

 

1.獲取實時數據

 

http://finance.yahoo.com/d/quotes.csv?s=股票名稱&f=數據列選項

 

s — 表示股票名稱,多個股票之間使用英文加號分隔,如“XOM+BBDb.TO+JNJ+MSFT”,羅列了四個公司的股票:XOM, BBDb.TO, JNJ, MSFT。

 

f — 表示返回數據列,如“snd1l1yr”。更詳細的參見附錄

 

2.歷史數據請求

 

http://ichart.yahoo.com/table.csv?s=string&a=int&b=int&c=int&d=int&e=int&f=int&g=d&ignore=.csv

 

s — 股票名稱

 

a — 起始時間,月

 

b — 起始時間,日

 

c — 起始時間,年

 

d — 結束時間,月

 

e — 結束時間,日

 

f — 結束時間,年

 

g — 時間周期。

 

  • 參數g的取值范圍:d->‘日’(day), w->‘周’(week),m->‘月’(mouth),v->‘dividends only’
  • 月份是從0開始的,如9月數據,則寫為08。

 

示例

 

查詢浦發銀行2010.09.25 – 2010.10.8之間日線數據

 

http://ichart.yahoo.com/table.csv?s=600000.SS&a=08&b=25&c=2010&d=09&e=8&f=2010&g=d

 

查看國內滬深股市的股票,規則是:滬股代碼末尾加.ss,深股代碼末尾加.sz。如浦發銀行的代號是:600000.SS

 

附錄

 

雅虎股票API f參數對照表

 

a

Ask

a2

Average Daily Volume

a5

Ask Size

b

Bid

b2

Ask (Real-time)

b3

Bid (Real-time)

b4

Book Value

b6

Bid Size

c

Change & Percent Change

c1

Change

c3

Commission

c6

Change (Real-time)

c8

After Hours Change (Real-time)

d

Dividend/Share

d1

Last Trade Date

d2

Trade Date

e

Earnings/Share

e1

Error Indication (returned for symbol changed / invalid)

e7

EPS Estimate Current Year

e8

EPS Estimate Next Year

e9

EPS Estimate Next Quarter

f6

Float Shares

g

Day’s Low

h

Day’s High

j

52-week Low

k

52-week High

g1

Holdings Gain Percent

g3

Annualized Gain

g4

Holdings Gain

g5

Holdings Gain Percent (Real-time)

g6

Holdings Gain (Real-time)

i

More Info

i5

Order Book (Real-time)

j1

Market Capitalization

j3

Market Cap (Real-time)

j4

EBITDA

j5

Change From 52-week Low

j6

Percent Change From 52-week Low

k1

Last Trade (Real-time) With Time

k2

Change Percent (Real-time)

k3

Last Trade Size

k4

Change From 52-week High

k5

Percebt Change From 52-week High

l

Last Trade (With Time)

l1

Last Trade (Price Only)

l2

High Limit

l3

Low Limit

m

Day’s Range

m2

Day’s Range (Real-time)

m3

50-day Moving Average

m4

200-day Moving Average

m5

Change From 200-day Moving Average

m6

Percent Change From 200-day Moving Average

m7

Change From 50-day Moving Average

m8

Percent Change From 50-day Moving Average

n

Name

n4

Notes

o

Open

p

Previous Close

p1

Price Paid

p2

Change in Percent

p5

Price/Sales

p6

Price/Book

q

Ex-Dividend Date

r

P/E Ratio

r1

Dividend Pay Date

r2

P/E Ratio (Real-time)

r5

PEG Ratio

r6

Price/EPS Estimate Current Year

r7

Price/EPS Estimate Next Year

s

Symbol

s1

Shares Owned

s7

Short Ratio

t1

Last Trade Time

t6

Trade Links

t7

Ticker Trend

t8

1 yr Target Price

v

Volume

v1

Holdings Value

v7

Holdings Value (Real-time)

w

52-week Range

w1

Day’s Value Change

w4

Day’s Value Change (Real-time)

x

Stock Exchange

 

 

 

 

 

 

 

python獲取yahoo財經信息工具類

 

 

 

   ystockquote.py

 

 

 

Python代碼   
  1. #!/usr/bin/env python  
  2. #  
  3. #  Copyright (c) 2007-2008, Corey Goldberg (corey@goldb.org)  
  4. #  
  5. #  license: GNU LGPL  
  6. #  
  7. #  This library is free software; you can redistribute it and/or  
  8. #  modify it under the terms of the GNU Lesser General Public  
  9. #  License as published by the Free Software Foundation; either  
  10. #  version 2.1 of the License, or (at your option) any later version.  
  11.   
  12.   
  13. import urllib  
  14.   
  15.   
  16. """ 
  17. This is the "ystockquote" module. 
  18.  
  19. This module provides a Python API for retrieving stock data from Yahoo Finance. 
  20.  
  21. sample usage: 
  22. >>> import ystockquote 
  23. >>> print ystockquote.get_price('GOOG') 
  24. 529.46 
  25. """  
  26.   
  27.   
  28. def __request(symbol, stat):  
  29.     url = 'http://finance.yahoo.com/d/quotes.csv?s=%s&f=%s' % (symbol, stat)  
  30.     return urllib.urlopen(url).read().strip().strip('"')  
  31.   
  32.   
  33. def get_all(symbol):  
  34.     """ 
  35.     Get all available quote data for the given ticker symbol. 
  36.      
  37.     Returns a dictionary. 
  38.     """  
  39.     values = __request(symbol, 'l1c1va2xj1b4j4dyekjm3m4rr5p5p6s7').split(',')  
  40.     data = {}  
  41.     data['price'] = values[0]  
  42.     data['change'] = values[1]  
  43.     data['volume'] = values[2]  
  44.     data['avg_daily_volume'] = values[3]  
  45.     data['stock_exchange'] = values[4]  
  46.     data['market_cap'] = values[5]  
  47.     data['book_value'] = values[6]  
  48.     data['ebitda'] = values[7]  
  49.     data['dividend_per_share'] = values[8]  
  50.     data['dividend_yield'] = values[9]  
  51.     data['earnings_per_share'] = values[10]  
  52.     data['52_week_high'] = values[11]  
  53.     data['52_week_low'] = values[12]  
  54.     data['50day_moving_avg'] = values[13]  
  55.     data['200day_moving_avg'] = values[14]  
  56.     data['price_earnings_ratio'] = values[15]  
  57.     data['price_earnings_growth_ratio'] = values[16]  
  58.     data['price_sales_ratio'] = values[17]  
  59.     data['price_book_ratio'] = values[18]  
  60.     data['short_ratio'] = values[19]  
  61.     return data  
  62.       
  63.       
  64. def get_price(symbol):   
  65.     return __request(symbol, 'l1')  
  66.   
  67.   
  68. def get_change(symbol):  
  69.     return __request(symbol, 'c1')  
  70.       
  71.       
  72. def get_volume(symbol):   
  73.     return __request(symbol, 'v')  
  74.   
  75.   
  76. def get_avg_daily_volume(symbol):   
  77.     return __request(symbol, 'a2')  
  78.       
  79.       
  80. def get_stock_exchange(symbol):   
  81.     return __request(symbol, 'x')  
  82.       
  83.       
  84. def get_market_cap(symbol):  
  85.     return __request(symbol, 'j1')  
  86.      
  87.      
  88. def get_book_value(symbol):  
  89.     return __request(symbol, 'b4')  
  90.   
  91.   
  92. def get_ebitda(symbol):   
  93.     return __request(symbol, 'j4')  
  94.       
  95.       
  96. def get_dividend_per_share(symbol):  
  97.     return __request(symbol, 'd')  
  98.   
  99.   
  100. def get_dividend_yield(symbol):   
  101.     return __request(symbol, 'y')  
  102.       
  103.       
  104. def get_earnings_per_share(symbol):   
  105.     return __request(symbol, 'e')  
  106.   
  107.   
  108. def get_52_week_high(symbol):   
  109.     return __request(symbol, 'k')  
  110.       
  111.       
  112. def get_52_week_low(symbol):   
  113.     return __request(symbol, 'j')  
  114.   
  115.   
  116. def get_50day_moving_avg(symbol):   
  117.     return __request(symbol, 'm3')  
  118.       
  119.       
  120. def get_200day_moving_avg(symbol):   
  121.     return __request(symbol, 'm4')  
  122.       
  123.       
  124. def get_price_earnings_ratio(symbol):   
  125.     return __request(symbol, 'r')  
  126.   
  127.   
  128. def get_price_earnings_growth_ratio(symbol):   
  129.     return __request(symbol, 'r5')  
  130.   
  131.   
  132. def get_price_sales_ratio(symbol):   
  133.     return __request(symbol, 'p5')  
  134.       
  135.       
  136. def get_price_book_ratio(symbol):   
  137.     return __request(symbol, 'p6')  
  138.          
  139.          
  140. def get_short_ratio(symbol):   
  141.     return __request(symbol, 's7')  
  142.       
  143.       
  144. def get_historical_prices(symbol, start_date, end_date):  
  145.     """ 
  146.     Get historical prices for the given ticker symbol. 
  147.     Date format is 'YYYYMMDD' 
  148.      
  149.     Returns a nested list. 
  150.     """  
  151.     url = 'http://ichart.yahoo.com/table.csv?s=%s&' % symbol + \  
  152.           'd=%s&' % str(int(end_date[4:6]) - 1) + \  
  153.           'e=%s&' % str(int(end_date[6:8])) + \  
  154.           'f=%s&' % str(int(end_date[0:4])) + \  
  155.           'g=d&' + \  
  156.           'a=%s&' % str(int(start_date[4:6]) - 1) + \  
  157.           'b=%s&' % str(int(start_date[6:8])) + \  
  158.           'c=%s&' % str(int(start_date[0:4])) + \  
  159.           'ignore=.csv'  
  160.     days = urllib.urlopen(url).readlines()  
  161.     data = [day[:-2].split(',') for day in days]  
  162.     return data  
  163.           

 

 

 

  使用工具類

 

 

 

Python代碼   
  1. import ystockquote  
  2. print ystockquote.get_price('600887.SS')  

 

 

 

 

 

=======================

 

 

 

 

 

和訊網股票查詢接口

 

2011-01-26 12:38

 

最近想自己寫個股票查詢的小軟件,網上找到了新浪的javascript接口,比較方便,但是新浪的接口沒有把換手率等信息直接返回,剛好看到和訊網的接口有這個信息,所以記錄下來。

查詢接口例:

http://bdcjhq.hexun.com/quote?s2=000001.sh,399001.sz,399300.sz,601186.sh

 

返回結果:

 

 <html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK"><script type='text/javascript'>document.domain='hexun.com';</script></head><body></body><script>try{parent.bdcallback({"399001.sz":{na:"深證成指",pc:"11446.372",op:"11459.016",vo:"2193906",tu:"379028",hi:"11624.467",lo:"11459.016",la:"11558.021",type:"1",time:"2011-01-26 11:30:22"},"399300.sz":{na:"滬深300 ",pc:"2938.654",op:"2939.773",vo:"21205501",tu:"2559517",hi:"2971.763",lo:"2939.356",la:"2960.847",type:"1",time:"2011-01-26 11:31:07"},"601186.sh":{na:"中國鐵建",pc:"7.22",op:"7.22",vo:"174035",tu:"12804",hi:"7.42",lo:"7.22",la:"7.39",type:"2",time:"2011-01-26 11:30:15",sy:"18.45",lt:"24.50",sz:"911.74",hs:"0.71",is:"0"},"tofnow":{time:"2011-01-26 11:37:51"}})}catch(e){}</script></html>
 

 從返回的結果看,股票數據應該就是JSON串,因此解析就比較方便了。

各個字段的意義如下:

"601186.sh":          //股票代碼

{

na:"中國鐵建",       //股票中文名稱

pc:"7.22",           //昨收盤

op:"7.22",           //今開盤

vo:"174035",         //成交量

tu:"12804",          //成交額

hi:"7.42",           //最高價

lo:"7.22",           //最低價

la:"7.39",           //現價

type:"2",            //類型,1:指數,2:股票?

time:"2011-01-26 11:30:15", //時間

sy:"18.45",          //市盈率= 現價/最近四個季度攤薄每股收益之和

lt:"24.50",          //流通股數(單位:億股)

sz:"911.74",         //總市值(單位:億)

hs:"0.71",           //換手率

is:"0"               // ??暫時未知

}

Google 的數據

1. 實時數據 http://www.google.com/ig/api?h1=zh-CN&stock=600001

2.K線圖 http://www.google.cn/finance/getchart?q=600336&x=SHA&p=5d&i=240 http://www.google.com/finance/chart?q=SHA:600001&amp;tlf=12

3. 補全信息 "http://www.google.cn/finance/match?matchtype=matchall&q=600".

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM