sina_stock_interface 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d4479fa603dc4b708a6c37f58f788421e0aca6f1
4
+ data.tar.gz: 7343212e919eae9b4062727927a31a611282f273
5
+ SHA512:
6
+ metadata.gz: b1821750013727a74a0c47c49cd3c0ce4c44ee6a8560e140fc7a55d6e0aa8d1ec024d9c871800a028abce7cf2d22b1c94cc740600a1126b11220b3a834eceac2
7
+ data.tar.gz: 59f559916f15425b3992508d554a952735decd93917329d545263c23cab1841fe0779e5cda17cd2c13ba23cd55f3869419acbac3bed16b17fcc342c7b61bc5ac
data/.gitignore ADDED
@@ -0,0 +1,22 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in sina_stock_interface.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 hging
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # SinaStockInterface
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'sina_stock_interface'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install sina_stock_interface
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it ( https://github.com/[my-github-username]/sina_stock_interface/fork )
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
@@ -0,0 +1,3 @@
1
+ module SinaStockInterface
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,164 @@
1
+ require "sina_stock_interface/version"
2
+ require "open-uri"
3
+ # 上证指数正则 /var hq_str_(\w*)="(\S*)";/
4
+ # a = open('http://hq.sinajs.cn/list=sh600005,sh600006').read.encode(Encoding.find("UTF-8"),Encoding.find("GBK"))
5
+ # a.scan(/var hq_str_(\w*)="(\S*)";/)
6
+ # a.scan(/var hq_str_(\w*)="(\S*)";/).collect{|x| x.join(",").split(",")}
7
+ =begin
8
+ 数据结构(大盘指数)
9
+ [
10
+ [
11
+ "sz399001", #ID
12
+ "深证成指", #指数名称
13
+ "7775.371", #当前点数
14
+ "-65.703", #当前价格
15
+ "-0.84", #涨跌率
16
+ "119551790", #成交量(手)
17
+ "11073847" #成交额(万元)
18
+ ], [
19
+ "sh000001",
20
+ "上证指数",
21
+ "2204.472",
22
+ "-4.993",
23
+ "-0.23",
24
+ "1055135",
25
+ "9345129"
26
+ ], [
27
+ "sz399006",
28
+ "创业板指",
29
+ "1408.407",
30
+ "-12.133",
31
+ "-0.85",
32
+ "4865557",
33
+ "1007593"
34
+ ]
35
+ ]
36
+
37
+ 数据结构(个股)
38
+ [
39
+ [
40
+ "sh600005", #股票ID
41
+ "武钢股份", #股票名称
42
+ "2.16", #今日开盘价
43
+ "2.16", #昨日收盘价
44
+ "2.15", #当前价格
45
+ "2.17", #今日最高
46
+ "2.14", #今日最低
47
+ "2.15", #竞买价(买一)
48
+ "2.16", #竞卖价(卖一)
49
+ "10338739", #成交的股票数,由于股票交易以一百股为基本单位,所以在使用时,通常把该值除以一百;
50
+ "22275926", #成交金额,单位为“元”,为了一目了然,通常以“万元”为成交金额的单位,所以通常把该值除以一万;
51
+ "146881", #买一申请股数
52
+ "2.15", #买一报价
53
+ "2010860", #买二股数
54
+ "2.14", #买二报价
55
+ "1351100", #买三股数
56
+ "2.13", #买三报价
57
+ "835500", #买四股数
58
+ "2.12", #买四报价
59
+ "424600", #买五股数
60
+ "2.11", #买五报价
61
+ "3307848", #卖一股数
62
+ "2.16", #卖一报价
63
+ "4852446", #卖二股数
64
+ "2.17", #卖二报价
65
+ "2077272", #卖三股数
66
+ "2.18", #卖三报价
67
+ "1218400", #卖四股数
68
+ "2.19", #卖四报价
69
+ "2194177", #卖五股数
70
+ "2.20", #卖五报价
71
+ "2014-08-28", #日期
72
+ "13:34:55", #时间
73
+ "00" #未知
74
+ ], [
75
+ "sh600006",
76
+ "东风汽车",
77
+ "4.31",
78
+ "4.40",
79
+ "4.39",
80
+ "4.55",
81
+ "4.21",
82
+ "4.39",
83
+ "4.40",
84
+ "40871061",
85
+ "178832662",
86
+ "177500",
87
+ "4.39",
88
+ "144600",
89
+ "4.38",
90
+ "251700",
91
+ "4.37",
92
+ "243600",
93
+ "4.36",
94
+ "342100",
95
+ "4.35",
96
+ "318350",
97
+ "4.40",
98
+ "27500",
99
+ "4.41",
100
+ "78900",
101
+ "4.42",
102
+ "151800",
103
+ "4.43",
104
+ "190400",
105
+ "4.44",
106
+ "2014-08-28",
107
+ "13:34:55",
108
+ "00"
109
+ ]
110
+ ]
111
+ 数据结构(上交所股票信息):
112
+ [
113
+ [
114
+ "900956", 股票ID
115
+ "东贝B股", 股票名称
116
+ "dbBg" 名称拼音缩写
117
+ ], [
118
+ "900957",
119
+ "凌云B股",
120
+ "lyBg"
121
+ ]
122
+ ]
123
+ =end
124
+
125
+ module SinaStockInterface
126
+ class Data
127
+ StockDataUrl = 'http://hq.sinajs.cn/list='
128
+
129
+ def self.format_data(request)
130
+ request.scan(/var hq_str_(\w*)="(\S*)";/).collect{|x| x.join(",").split(",")}
131
+ end
132
+
133
+ def self.get_stock_data_by_id(stock_id)
134
+ url = "#{StockDataUrl}#{stock_id}"
135
+ request = open(url).read.encode(Encoding.find("UTF-8"),Encoding.find("GBK"))
136
+ format_data(request)
137
+ end
138
+
139
+ def self.get_stock_index_by_id(stock_index_id)
140
+ url = "#{StockDataUrl}#{stock_index_id}"
141
+ request = open(url).read.encode(Encoding.find("UTF-8"),Encoding.find("GBK"))
142
+ format_data(request)
143
+ end
144
+ end
145
+ class Info
146
+ SSEUrl = 'http://www.sse.com.cn/js/common/ssesuggestdata.js'
147
+ SZSEUrl = 'http://www.szse.cn/szseWeb/FrontController.szse?ACTIONID=8&CATALOGID=1110&TABKEY=tab1&ENCODE=1'
148
+ def self.get_sse_info
149
+ format = /val:"(\w*)",val2:"(\S*)",val3:"(\w*)"/
150
+ request = open(SSEUrl).read.force_encoding('UTF-8')
151
+ request.scan(format)
152
+ end
153
+
154
+ def self.get_szse_info
155
+ format = /style='mso-number-\w*\D*(\w*)\D*center'.>(\D+)<\D*<td class='cls-data-td' align='left/
156
+ request = open(SZSEUrl).read.force_encoding('UTF-8')
157
+ request.scan(format)
158
+ end
159
+ end
160
+ end
161
+
162
+
163
+
164
+
data/lib/untitled.html ADDED
@@ -0,0 +1,96 @@
1
+ <meta http-equiv="Content-Type" content="text/html; charset=GBK">
2
+ <table bgcolor='#E0E0E0' id="REPORTID_tab1" class='cls-data-table' cellspacing='1' border='1' width="100%" >
3
+ <tr class='cls-data-tr-head' >
4
+ <td class='cls-data-th' bgcolor='#cde1fe' >公司代码</td>
5
+ <td class='cls-data-th' bgcolor='#cde1fe' >公司简称</td>
6
+ <td class='cls-data-th' bgcolor='#cde1fe' >公司全称</td>
7
+ <td class='cls-data-th' bgcolor='#cde1fe' >英文名称</td>
8
+ <td class='cls-data-th' bgcolor='#cde1fe' >注册地址</td>
9
+ <td class='cls-data-th' bgcolor='#cde1fe' >A股代码</td>
10
+ <td class='cls-data-th' bgcolor='#cde1fe' >A股简称</td>
11
+ <td class='cls-data-th' bgcolor='#cde1fe' >A股上市日期</td>
12
+ <td class='cls-data-th' bgcolor='#cde1fe' >A股总股本</td>
13
+ <td class='cls-data-th' bgcolor='#cde1fe' >A股流通股本</td>
14
+ <td class='cls-data-th' bgcolor='#cde1fe' >B股代码</td>
15
+ <td class='cls-data-th' bgcolor='#cde1fe' >B股 简 称</td>
16
+ <td class='cls-data-th' bgcolor='#cde1fe' >B股上市日期</td>
17
+ <td class='cls-data-th' bgcolor='#cde1fe' >B股总股本</td>
18
+ <td class='cls-data-th' bgcolor='#cde1fe' >B股流通股本</td>
19
+ <td class='cls-data-th' bgcolor='#cde1fe' >地 区</td>
20
+ <td class='cls-data-th' bgcolor='#cde1fe' >省 份</td>
21
+ <td class='cls-data-th' bgcolor='#cde1fe' >城 市</td>
22
+ <td class='cls-data-th' bgcolor='#cde1fe' >所属行业</td>
23
+ <td class='cls-data-th' bgcolor='#cde1fe' >公司网址</td>
24
+ </tr>
25
+ <tr class='cls-data-tr' bgcolor='#FFFFFF'>
26
+ <td class='cls-data-td' style='mso-number-format:\@' align='center' >000001</td>
27
+ <td class='cls-data-td' align='center' >平安银行</td>
28
+ <td class='cls-data-td' align='left' >平安银行股份有限公司</td>
29
+ <td class='cls-data-td' align='center' >Ping An Bank Co., Ltd.</td>
30
+ <td class='cls-data-td' align='center' >广东省深圳市罗湖区深南东路5047号</td>
31
+ <td class='cls-data-td' align='center' >000001</td>
32
+ <td class='cls-data-td' align='center' >平安银行</td>
33
+ <td class='cls-data-td' align='center' >1991-04-03</td>
34
+ <td class='cls-data-td' align='center' >11,424,894,787</td>
35
+ <td class='cls-data-td' align='center' >6,685,563,096</td>
36
+ <td class='cls-data-td' align='center' ></td>
37
+ <td class='cls-data-td' align='center' ></td>
38
+ <td class='cls-data-td' align='center' ></td>
39
+ <td class='cls-data-td' align='center' >0</td>
40
+ <td class='cls-data-td' align='center' >0</td>
41
+ <td class='cls-data-td' align='center' >华南</td>
42
+ <td class='cls-data-td' align='center' >广东</td>
43
+ <td class='cls-data-td' align='center' >深圳市</td>
44
+ <td class='cls-data-td' align='left' >J 金融业</td>
45
+ <td class='cls-data-td' align='left' >www.bank.pingan.com</td>
46
+ </tr>
47
+ <tr class='cls-data-tr' bgcolor='#F8F8F8'>
48
+ <td class='cls-data-td' style='mso-number-format:\@' align='center' >000002</td>
49
+ <td class='cls-data-td' align='center' >万 科A</td>
50
+ <td class='cls-data-td' align='left' >万科企业股份有限公司</td>
51
+ <td class='cls-data-td' align='center' >CHINA VANKE CO., LTD</td>
52
+ <td class='cls-data-td' align='center' >广东省深圳市盐田区大梅沙环梅路33号万科中心</td>
53
+ <td class='cls-data-td' align='center' >000002</td>
54
+ <td class='cls-data-td' align='center' >万 科A</td>
55
+ <td class='cls-data-td' align='center' >1991-01-29</td>
56
+ <td class='cls-data-td' align='center' >9,700,847,351</td>
57
+ <td class='cls-data-td' align='center' >9,668,896,840</td>
58
+ <td class='cls-data-td' align='center' ></td>
59
+ <td class='cls-data-td' align='center' ></td>
60
+ <td class='cls-data-td' align='center' ></td>
61
+ <td class='cls-data-td' align='center' >0</td>
62
+ <td class='cls-data-td' align='center' >0</td>
63
+ <td class='cls-data-td' align='center' >华南</td>
64
+ <td class='cls-data-td' align='center' >广东</td>
65
+ <td class='cls-data-td' align='center' >深圳市</td>
66
+ <td class='cls-data-td' align='left' >K 房地产</td>
67
+ <td class='cls-data-td' align='left' >www.vanke.com</td>
68
+ </tr>
69
+ <tr class='cls-data-tr' bgcolor='#FFFFFF'>
70
+ <td class='cls-data-td' style='mso-number-format:\@' align='center' >000004</td>
71
+ <td class='cls-data-td' align='center' >国农科技</td>
72
+ <td class='cls-data-td' align='left' >深圳中国农大科技股份有限公司</td>
73
+ <td class='cls-data-td' align='center' >SHENZHEN CAU TECHNOLOGY CO., LTD</td>
74
+ <td class='cls-data-td' align='center' >广东省深圳市福田区商报路奥林匹克大厦6楼D-E</td>
75
+ <td class='cls-data-td' align='center' >000004</td>
76
+ <td class='cls-data-td' align='center' >国农科技</td>
77
+ <td class='cls-data-td' align='center' >1990-12-01</td>
78
+ <td class='cls-data-td' align='center' >83,976,684</td>
79
+ <td class='cls-data-td' align='center' >83,817,017</td>
80
+ <td class='cls-data-td' align='center' ></td>
81
+ <td class='cls-data-td' align='center' ></td>
82
+ <td class='cls-data-td' align='center' ></td>
83
+ <td class='cls-data-td' align='center' >0</td>
84
+ <td class='cls-data-td' align='center' >0</td>
85
+ <td class='cls-data-td' align='center' >华南</td>
86
+ <td class='cls-data-td' align='center' >广东</td>
87
+ <td class='cls-data-td' align='center' >深圳市</td>
88
+ <td class='cls-data-td' align='left' >C 制造业</td>
89
+ <td class='cls-data-td' align='left' >www.sz000004.cn</td>
90
+ </tr>
91
+ </table>
92
+ <table id='tbl-data-bottom-line' height='2' cellSpacing='0' cellPadding='0' width="100%" bgColor='#b8d9ec' border='0'>
93
+ <tr>
94
+ <td></td>
95
+ </tr>
96
+ </table>
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'sina_stock_interface/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "sina_stock_interface"
8
+ spec.version = SinaStockInterface::VERSION
9
+ spec.authors = ["hging"]
10
+ spec.email = ["hging3@gmail.com"]
11
+ spec.summary = %q{get stock info and data by this gem.}
12
+ spec.description = %q{get stock info and data by this gem.}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.6"
22
+ spec.add_development_dependency "rake"
23
+ end
metadata ADDED
@@ -0,0 +1,81 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sina_stock_interface
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - hging
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-08-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: get stock info and data by this gem.
42
+ email:
43
+ - hging3@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - .gitignore
49
+ - Gemfile
50
+ - LICENSE.txt
51
+ - README.md
52
+ - Rakefile
53
+ - lib/sina_stock_interface.rb
54
+ - lib/sina_stock_interface/version.rb
55
+ - lib/untitled.html
56
+ - sina_stock_interface.gemspec
57
+ homepage: ''
58
+ licenses:
59
+ - MIT
60
+ metadata: {}
61
+ post_install_message:
62
+ rdoc_options: []
63
+ require_paths:
64
+ - lib
65
+ required_ruby_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ required_rubygems_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ requirements: []
76
+ rubyforge_project:
77
+ rubygems_version: 2.2.2
78
+ signing_key:
79
+ specification_version: 4
80
+ summary: get stock info and data by this gem.
81
+ test_files: []