histock-simplefilter 0.4.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +34 -12
- data/lib/histock/simplefilter/fetch.rb +39 -1
- data/lib/histock/simplefilter/fetch/corporate_value.rb +15 -0
- data/lib/histock/simplefilter/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fc728f6f0a3d2640bfb67ed6f62f5ea35417f05f7fb03fadc6ebb3adf55d256
|
4
|
+
data.tar.gz: 9adceb2e0fd319ff5af538a0b9c83537a89fa16f142db172bb220d66e95491e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c853c35a89f497d470fe0dd524a78e63b2ce5f356b97a33a55dc723517ce808e6fd7db26ed030c417199932bb916f12cede9f6a58b2f30c1d185ea256e640285
|
7
|
+
data.tar.gz: 79a8c59281249483f01b572570adf4eab80b026238924a0decb2ee06a460ea67736bd0cfc0c3d1217cf36dd93317aaefdc8828f1731dac1c6a9e4f1a9545050a
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## v0.5.0
|
2
|
+
[full changelog](http://github.com/ysato5654/histock-simplefilter/compare/v0.4.1...v0.5.0)
|
3
|
+
|
4
|
+
* support new request
|
5
|
+
- price to earning ratio
|
6
|
+
- price book ratio
|
7
|
+
|
1
8
|
## v0.4.1
|
2
9
|
[full changelog](http://github.com/ysato5654/histock-simplefilter/compare/v0.4.0...v0.4.1)
|
3
10
|
|
data/README.md
CHANGED
@@ -60,10 +60,8 @@ histock.monthly_revenue('2330') # code '2330' is TSMC
|
|
60
60
|
#### Income Statement (損益表)
|
61
61
|
|
62
62
|
```rb
|
63
|
-
require 'histock/simplefilter'
|
64
|
-
|
65
63
|
histock = Histock::Simplefilter.new
|
66
|
-
histock.income_statement('2330')
|
64
|
+
histock.income_statement('2330')
|
67
65
|
# [
|
68
66
|
# ["年度/季別", "營收", "毛利", "營業利益", "稅前淨利", "稅後淨利"],
|
69
67
|
# ["2019Q4", "317,237,065", "159,240,985", "124,243,722", "128,781,973", "116,078,194"],
|
@@ -82,10 +80,8 @@ histock.income_statement('2330') # code '2330' is TSMC
|
|
82
80
|
#### 除權除息
|
83
81
|
|
84
82
|
```rb
|
85
|
-
require 'histock/simplefilter'
|
86
|
-
|
87
83
|
histock = Histock::Simplefilter.new
|
88
|
-
histock.dividend_policy('2330')
|
84
|
+
histock.dividend_policy('2330')
|
89
85
|
# [
|
90
86
|
# ["所屬年度", "發放年度", "除權日", "除息日", "除權息前股價", "股票股利", "現金股利", "EPS", "配息率", "現金殖利率", "扣抵稅率", "增資配股率", "增資認購價"],
|
91
87
|
# ["2019", "2020", "", "06/18", "297.5", "0", "2.5", "13.32", "0.1877", "0.0084", "0", "0", "0"],
|
@@ -112,26 +108,50 @@ histock.dividend_policy('2330') # code '2330' is TSMC
|
|
112
108
|
#### Profit Ratio (利潤比率)
|
113
109
|
|
114
110
|
```rb
|
115
|
-
require 'histock/simplefilter'
|
116
|
-
|
117
111
|
histock = Histock::Simplefilter.new
|
118
|
-
histock.profit_ratio('2330')
|
112
|
+
histock.profit_ratio('2330')
|
119
113
|
```
|
120
114
|
|
121
115
|
#### Income Rate (報酬率)
|
122
116
|
|
123
117
|
```rb
|
124
|
-
require 'histock/simplefilter'
|
125
|
-
|
126
118
|
histock = Histock::Simplefilter.new
|
127
119
|
# monthly data
|
128
|
-
histock.income_rate('2330', 'month')
|
120
|
+
histock.income_rate('2330', 'month')
|
129
121
|
# quarterly data
|
130
122
|
histock.income_rate('2330', 'quarter')
|
131
123
|
# yearly data
|
132
124
|
histock.income_rate('2330', 'year')
|
133
125
|
```
|
134
126
|
|
127
|
+
### Corporate Value (企業價值)
|
128
|
+
|
129
|
+
#### PER (本益比)
|
130
|
+
|
131
|
+
```rb
|
132
|
+
histock = Histock::Simplefilter.new
|
133
|
+
histock.price_to_earning_ratio('2330')
|
134
|
+
# [
|
135
|
+
# ["年度/月份", "本益比"],
|
136
|
+
# ["2020/06", "20.44"],
|
137
|
+
# [],
|
138
|
+
# :
|
139
|
+
# ]
|
140
|
+
```
|
141
|
+
|
142
|
+
#### PBR (股價淨值比)
|
143
|
+
|
144
|
+
```rb
|
145
|
+
histock = Histock::Simplefilter.new
|
146
|
+
histock.price_book_ratio('2330')
|
147
|
+
# [
|
148
|
+
# ["年度/月份", "股價淨值比"],
|
149
|
+
# ["2020/06", "4.89"],
|
150
|
+
# [],
|
151
|
+
# :
|
152
|
+
# ]
|
153
|
+
```
|
154
|
+
|
135
155
|
### Request Lists (Method)
|
136
156
|
|
137
157
|
| Category | Request (Ch) | Request (En) | Source URL |
|
@@ -143,5 +163,7 @@ histock.income_rate('2330', 'year')
|
|
143
163
|
| 獲利能力 | 報酬率(單一季) | Income Rate | https://histock.tw/stock/financial.aspx?no=CODE&t=3&st=2&q=1 |
|
144
164
|
| 獲利能力 | 報酬率(近四季) | Income Rate | https://histock.tw/stock/financial.aspx?no=CODE&t=3&st=2&q=2 |
|
145
165
|
| 獲利能力 | 報酬率(年度) | Income Rate | https://histock.tw/stock/financial.aspx?no=CODE&t=3&st=2&q=3 |
|
166
|
+
| 企業價值 | 本益比 | Price-to-Earning Ratio | https://histock.tw/stock/financial.aspx?no=CODE&t=6&st=1 |
|
167
|
+
| 企業價值 | 股價淨值比 | Price-Book Ratio | https://histock.tw/stock/financial.aspx?no=CODE&t=6&st=2 |
|
146
168
|
|
147
169
|
(note) You can fill real code number in 'CODE' field.
|
@@ -3,12 +3,14 @@ require File.expand_path(File.dirname(__FILE__)) + '/error'
|
|
3
3
|
require File.expand_path(File.dirname(__FILE__)) + '/fetch/basic_financial_statements'
|
4
4
|
require File.expand_path(File.dirname(__FILE__)) + '/fetch/dividend_policy'
|
5
5
|
require File.expand_path(File.dirname(__FILE__)) + '/fetch/profitability'
|
6
|
+
require File.expand_path(File.dirname(__FILE__)) + '/fetch/corporate_value'
|
6
7
|
|
7
8
|
module Histock
|
8
9
|
module Fetch
|
9
10
|
include BasicFinancialStatements
|
10
11
|
include DividendPolicy
|
11
12
|
include Profitability
|
13
|
+
include CorporateValue
|
12
14
|
|
13
15
|
private
|
14
16
|
|
@@ -24,6 +26,10 @@ module Histock
|
|
24
26
|
nodes = doc.xpath("//div[@class='row-stock']/div[@class='tb-outline']/div/table[@class='tb-stock tbBasic']")
|
25
27
|
when :profit_ratio, :income_rate
|
26
28
|
nodes = doc.xpath("//div[@class='row-stock w1060']/div[@class='tb-outline']/div/table[@class='tb-stock tbBasic']")
|
29
|
+
when :price_to_earning_ratio
|
30
|
+
nodes = doc.xpath("//div[@class='row-stock w740']/table[@class='tb-stock tb-outline tbBasic']")
|
31
|
+
when :price_book_ratio
|
32
|
+
nodes = doc.xpath("//div[@class='row-stock']/table[@class='tb-stock tb-outline tbBasic']")
|
27
33
|
end
|
28
34
|
|
29
35
|
raise InformationNotFound if nodes.empty?
|
@@ -36,7 +42,39 @@ module Histock
|
|
36
42
|
end
|
37
43
|
|
38
44
|
def parse_table query:, element:
|
39
|
-
|
45
|
+
if children_is_tbody(:element => element)
|
46
|
+
table = parse_tr(:query => query, :element => fetch_tbody(:element => element))
|
47
|
+
else
|
48
|
+
table = parse_tr(:query => query, :element => element)
|
49
|
+
end
|
50
|
+
|
51
|
+
case query
|
52
|
+
when :price_to_earning_ratio, :price_book_ratio
|
53
|
+
_table = Array.new
|
54
|
+
|
55
|
+
_table.concat([table[0][0..1]])
|
56
|
+
|
57
|
+
# remove header
|
58
|
+
table.slice!(0)
|
59
|
+
|
60
|
+
until table.flatten.empty? do
|
61
|
+
_table.concat(table.map { |e| e.slice!(0, 2) })
|
62
|
+
end
|
63
|
+
|
64
|
+
table = _table
|
65
|
+
end
|
66
|
+
|
67
|
+
table
|
68
|
+
end
|
69
|
+
|
70
|
+
def children_is_tbody element:
|
71
|
+
nodes = element.children
|
72
|
+
|
73
|
+
nodes.length.is_one? and nodes.first.name == 'tbody'
|
74
|
+
end
|
75
|
+
|
76
|
+
def fetch_tbody element:
|
77
|
+
element.children
|
40
78
|
end
|
41
79
|
|
42
80
|
# column
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Histock
|
2
|
+
module Fetch
|
3
|
+
module CorporateValue
|
4
|
+
def price_to_earning_ratio(code)
|
5
|
+
params = {:no => code, :t => 6, :st => 1}
|
6
|
+
parse(:query => __method__, :html => get('/financial.aspx', params))
|
7
|
+
end
|
8
|
+
|
9
|
+
def price_book_ratio(code)
|
10
|
+
params = {:no => code, :t => 6, :st => 2}
|
11
|
+
parse(:query => __method__, :html => get('/financial.aspx', params))
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: histock-simplefilter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuya Sato
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -103,6 +103,7 @@ files:
|
|
103
103
|
- lib/histock/simplefilter/error.rb
|
104
104
|
- lib/histock/simplefilter/fetch.rb
|
105
105
|
- lib/histock/simplefilter/fetch/basic_financial_statements.rb
|
106
|
+
- lib/histock/simplefilter/fetch/corporate_value.rb
|
106
107
|
- lib/histock/simplefilter/fetch/dividend_policy.rb
|
107
108
|
- lib/histock/simplefilter/fetch/profitability.rb
|
108
109
|
- lib/histock/simplefilter/version.rb
|