前提
mechanizeを用いて株の情報をスクレイピングしたいと思っています。
実現したいこと
<thead>タグは取得しない <tbody>タグの5、6、7日分の値を取得したいしかし現段階では5日の<tbody>タグの値しか取得できない
取得したいページ
html
1<table class="stock_table stock_data_table"> 2 <thead> 3 <tr> 4 <th>日付</th> 5 <th>始値</th> 6 <th>高値</th> 7 <th>安値</th> 8 <th>終値</th> 9 <th>出来高</th> 10 <th>終値調整</th> 11 </tr> 12 </thead> 13 <tbody> #5日のデータ 14 <tr> 15 <td>2009-01-05</td> 16 <td>1180</td> 17 <td>1180</td> 18 <td>1119</td> 19 <td>1135</td> 20 <td>2952000</td> 21 <td>1135</td> 22 </tr> 23 </tbody> 24 <tbody> #6日のデータ 25 <tr> 26 <td>2009-01-06</td> 27 <td>1180</td> 28 <td>1180</td> 29 <td>1119</td> 30 <td>1135</td> 31 <td>2952000</td> 32 <td>1135</td> 33 </tr> 34 </tbody> 35 <tbody> #7日のデータ 36 <tr> 37 <td>2009-01-07</td> 38 <td>1180</td> 39 <td>1180</td> 40 <td>1119</td> 41 <td>1135</td> 42 <td>2952000</td> 43 <td>1135</td> 44 </tr> 45 </tbody>
コード
ruby
1require 'mechanize' 2 3class Scraping 4 stock = Mechanize.new 5 6 page = stock.get('https://kabuoji3.com/stock/7752/2009/') 7 8 table = page.search("//table[@class='stock_table stock_data_table']/tbody") 9 10 table.each do |t| 11 puts t.inner_text 12 end 13 14end
この問題がずっと解けないでいるスクレイピング初心者ですが、どなたか回答をいただけたら幸いです。
回答1件
あなたの回答
tips
プレビュー