Rubyとプログラミングの世界にはかなり新しいです。Nokogiri XML BuilderはHTMLを掻き集める際に予期せぬ出力を作成します
私の目標は、テーブルを削り取り、データをXMLファイルに保存することです。私が正常に書いた簡単なスクリプトは、両方のことを成し遂げます。私が抱えている問題はXMLの保存方法です。私が見慣れたXMLと一致しません。
私はかなりの例、チュートリアル、フォーラムをすっかり見つけ出しましたが、まだ解決策に到達していません。
特に最初の3つのカラムが本当に必要なので、テーブルからデータを取得するためのより良い方法については、私は何か提案しています。助けて!!!ここで
は私のスクリプトです:
require 'nokogiri'
require 'open-uri'
url = "http://www.covers.com/pageLoader/pageLoader.aspx?page=
/data/nba/team/pastresults/2010-2011/team404085.html"
doc = Nokogiri::HTML(open(url))
builder = Nokogiri::XML::Builder.new do |xml|
xml.root {
xml.items {
doc.css('.data').each do |o|
xml.item_content = o
end
}
}
end
File.open('ATL.xml','w'){|f| f.write builder.to_xml}
puts "Scrape Completed."
それが.xmlのファイルに保存したり、Rubyで画面上に印刷された、XMLは次のようになりますかどうか:上記のコードは、単にある
<?xml version="1.0"?>
<root>
<items>
<item_content=><table cellpadding="2" cellspacing="1" class="data">
<tr class="datahead">
<td width="11%">Date</td>
<td width="21%">Vs</td>
<td width="18%">Score</td>
<td width="27%">Type</td>
<td width="13%">ATL Line</td>
<td width="10%">O/U</td>
</tr>
<tr class="datarow">
<td>
01/18/11</td>
<td>
@ <a href="/pageLoader/pageLoader.aspx?page=/data/nba/team/
team404171.html">Miami</a>
</td>
<td>
W <a href="/pageLoader/pageLoader.aspx?page=/data/nba/
results/2010-2011/boxscore795345.html">
93-89</a> (OT)</td>
<td>
Regular Season</td>
<td>
W 5.5</td>
<td>
U 194</td>
</tr>
スニペットには複数の行があるため(44合計)
これを行う最善の方法は何ですか?
ご協力いただきありがとうございます。この問題は、コードのビルダー部分にあるように思えました.HTMLのテキストだけが必要だったからです。再度、感謝します! – darren