質問編集履歴

1

文法の修正

2015/02/11 13:58

投稿

Shinog
Shinog

スコア99

test CHANGED
File without changes
test CHANGED
@@ -2,140 +2,8 @@
2
2
 
3
3
  現在、クローラを用いてヤフーファイナンスから全銘柄の基本情報(株価、PER,PBRなど)を取得しようと考えています。
4
4
 
5
- 以下のコード(言語Ruby)で、4689(ヤフー)の基本情報を取得することは出来たのですが、この先からどう展開していけばよいでしょうか??
5
+ どう展開していけばよいでしょうか??
6
6
 
7
7
 
8
8
 
9
9
  ご教授のほど、よろしくお願いしますm(_ _)m
10
-
11
-
12
-
13
- # -*- coding: utf-8 -*-
14
-
15
- require 'nokogiri'
16
-
17
- require 'open-uri'
18
-
19
-
20
-
21
- class CompanyInfo
22
-
23
- def initialize(ticker_code)
24
-
25
- @baseUrl = "http://stocks.finance.yahoo.co.jp/stocks"
26
-
27
- @tickerCode = ticker_code
28
-
29
- scrape
30
-
31
- end
32
-
33
- attr_reader :name, :tickerCode, :category,
34
-
35
- :unit, :recentHighPrice, :recentLowPrice,
36
-
37
- :highPrice, :lowPrice, :price, :PER, :PBR
38
-
39
-
40
-
41
- private
42
-
43
- def scrape_stock_info(html, index)
44
-
45
- get_content(html, "dd", "ymuiEditLink mar0", index, "/strong").delete(",")
46
-
47
- end
48
-
49
-
50
-
51
- def get_company_info()
52
-
53
- url = "#{@baseUrl}/profile/?code=#{@tickerCode}"
54
-
55
- doc = get_nokogiri_doc(url)
56
-
57
- @name = doc.xpath("//th[@class='symbol']/h1").text
58
-
59
- @category = doc.xpath("//table[@class='boardFinCom marB6']/tr[6]/td").text
60
-
61
- @unit = doc.xpath("//table[@class='boardFinCom marB6']/tr[13]/td").text
62
-
63
- end
64
-
65
-
66
-
67
- def get_stock_info()
68
-
69
- url = "#{@baseUrl}/detail/?code=#{@tickerCode}"
70
-
71
- doc = get_nokogiri_doc(url)
72
-
73
- @PER = doc.xpath("//div[@class='chartFinance']/div[5]/dl/dd[@class='ymuiEditLink mar0']/strong").text
74
-
75
- @PBR = doc.xpath("//div[@class='chartFinance']/div[6]/dl/dd[@class='ymuiEditLink mar0']/strong").text
76
-
77
- @recentHighPrice = doc.xpath("//div[11]/dl/dd[@class='ymuiEditLink mar0']/strong").text
78
-
79
- @recentLowPrice = doc.xpath("//div[12]/dl/dd[@class='ymuiEditLink mar0']/strong").text
80
-
81
- @highPrice = doc.xpath("//div[@class='innerDate']/div[3]/dl/dd[@class='ymuiEditLink mar0']/strong").text
82
-
83
- @lowPrice = doc.xpath("//div[@class='innerDate']/div[4]/dl/dd[@class='ymuiEditLink mar0']/strong").text
84
-
85
- @price = doc.xpath("//td[@class='stoksPrice']").text
86
-
87
- end
88
-
89
-
90
-
91
- def get_nokogiri_doc(url)
92
-
93
- begin
94
-
95
- html = open(url)
96
-
97
- rescue OpenURI::HTTPError
98
-
99
- return
100
-
101
- end
102
-
103
- Nokogiri::HTML(html.read, nil, 'utf-8')
104
-
105
- end
106
-
107
-
108
-
109
- def scrape
110
-
111
- get_company_info
112
-
113
- get_stock_info
114
-
115
- end
116
-
117
- end
118
-
119
-
120
-
121
- company = CompanyInfo.new("4689")
122
-
123
- puts company.name
124
-
125
- puts company.category
126
-
127
- puts company.unit
128
-
129
- puts "PER:"+company.PER
130
-
131
- puts "PBR:"+company.PBR
132
-
133
- puts "年初来高値:"+company.recentHighPrice
134
-
135
- puts "年初来安値:"+company.recentLowPrice
136
-
137
- puts "高値:"+company.highPrice
138
-
139
- puts "安値:"+company.lowPrice
140
-
141
- puts "株価:"+company.price