回答編集履歴

5

修正

2017/06/18 10:29

投稿

退会済みユーザー
test CHANGED
@@ -96,4 +96,64 @@
96
96
 
97
97
  ```
98
98
 
99
+ 企業名と業界を追加したもの
99
100
 
101
+ ```Ruby
102
+
103
+ # encoding: utf-8
104
+
105
+
106
+
107
+ require'open-uri'
108
+
109
+
110
+
111
+ def test(code)
112
+
113
+ data = open("http://www.nikkei.com/nkd/company/?scode=#{code}", &:read)
114
+
115
+
116
+
117
+ title, industry = data.scan(/<meta property="og:title" content="(.+?)"/).flatten[0].split(':').shift(2)
118
+
119
+ market = data.scan(/<span class="m-company_data_select_btn .+?" data-tab=".m-company_data_option_mk" >(.+?)<\/span>/).flatten.first
120
+
121
+ stock = data.scan(/<span class="m-stockInfo_detail_value\s*">(.+?)<span class="m-stockInfo_detail_unit"> 株/).flatten.first
122
+
123
+
124
+
125
+ [title, industry, market, stock]
126
+
127
+ end
128
+
129
+
130
+
131
+ (3193..3197).each do |code|
132
+
133
+ open('sample.txt', 'a') do |f|
134
+
135
+ f.puts(test(code).join("\t"))
136
+
137
+ end
138
+
139
+ end
140
+
141
+ ```
142
+
143
+ 実行結果例
144
+
145
+ ```
146
+
147
+ 鳥貴族[3193] 飲食店 東証1部 221,100
148
+
149
+ キリン堂ホールディングス[3194] 専門店・ドラッグストア 東証1部 51,600
150
+
151
+ ジェネレーションパス[3195] インターネットサイト運営 マザーズ 22,100
152
+
153
+ ホットランド[3196] 弁当・デリバリー 東証1部 47,000
154
+
155
+ すかいらーく[3197] 飲食店 東証1部 10,152,600
156
+
157
+ ```
158
+
159
+

4

修正

2017/06/18 10:29

投稿

退会済みユーザー
test CHANGED
@@ -54,7 +54,7 @@
54
54
 
55
55
  使い方
56
56
 
57
- 3193~3197の情報を取得してsample.txtに書き込む場合。
57
+ 3193~3197の「上場市場と売買高」を取得してsample.txtに書き込む場合。
58
58
 
59
59
  ```Ruby
60
60
 

3

修正

2017/06/18 10:22

投稿

退会済みユーザー
test CHANGED
@@ -56,8 +56,6 @@
56
56
 
57
57
  3193~3197の情報を取得してsample.txtに書き込む場合。
58
58
 
59
- certifiedはエラーよけのためのライブラリなので無くても大丈夫な場合は削除。
60
-
61
59
  ```Ruby
62
60
 
63
61
  # encoding: utf-8
@@ -65,8 +63,6 @@
65
63
 
66
64
 
67
65
  require'open-uri'
68
-
69
- require'certified'
70
66
 
71
67
 
72
68
 

2

修正

2017/06/18 10:11

投稿

退会済みユーザー
test CHANGED
@@ -47,3 +47,57 @@
47
47
  ```
48
48
 
49
49
  考えてみました。
50
+
51
+
52
+
53
+ #補足
54
+
55
+ 使い方
56
+
57
+ 3193~3197の情報を取得してsample.txtに書き込む場合。
58
+
59
+ certifiedはエラーよけのためのライブラリなので無くても大丈夫な場合は削除。
60
+
61
+ ```Ruby
62
+
63
+ # encoding: utf-8
64
+
65
+
66
+
67
+ require'open-uri'
68
+
69
+ require'certified'
70
+
71
+
72
+
73
+ def test(code)
74
+
75
+ data = open("http://www.nikkei.com/nkd/company/?scode=#{code}", &:read)
76
+
77
+
78
+
79
+ market = data.scan(/<span class="m-company_data_select_btn .+?" data-tab=".m-company_data_option_mk" >(.+?)<\/span>/).flatten.first
80
+
81
+ stock = data.scan(/<span class="m-stockInfo_detail_value\s*">(.+?)<span class="m-stockInfo_detail_unit"> 株/).flatten.first
82
+
83
+
84
+
85
+ [market, stock]
86
+
87
+ end
88
+
89
+
90
+
91
+ (3193..3197).each do |code|
92
+
93
+ open('sample.txt', 'a') do |f|
94
+
95
+ f.puts(test(code).join("\s"))
96
+
97
+ end
98
+
99
+ end
100
+
101
+ ```
102
+
103
+

1

修正

2017/06/18 10:09

投稿

退会済みユーザー
test CHANGED
@@ -28,7 +28,21 @@
28
28
 
29
29
 
30
30
 
31
+ # =================================
32
+
33
+ # open('market.txt', 'w') do |f|
34
+
35
+ # f.puts(test('3197').join("\s"))
36
+
37
+ # end
38
+
39
+ # =================================
40
+
41
+
42
+
31
43
  puts test('3197').join("\s") # => 10,152,600 東証1部
44
+
45
+
32
46
 
33
47
  ```
34
48