sina_stock_interface 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []