2012-06-24 24 views
1

我試圖從損益表中提取數據中提取文本,網址是http://finance.yahoo.com/q/is?s=LMT+Income+Statement&annual從的Watir/Ruby的一個網表

我無法找到使用browser.table(表:姓名,「嗒嗒')或(:身份證,‘胡說’),但使用與引入nokogiri中的XPath使用此代碼一些運氣,其拾取後我初始化一切,瀏覽頁面:

page_html = Nokogiri::HTML.parse(browser.html) 
tobj = page_html.xpath('//*[@id="yfncsumtab"]').inner_text 

現在的我能夠將數據取出並將數據提取出來,但對於試圖將對象作爲表格進行操作來說,這並沒有什麼好處。關於如何將表存儲爲變量的任何建議都會有所幫助。我大概可以從那裏迭代通過行/列,但我不介意你是否加入了一些可以實現這一點的代碼。

+0

你能解釋一下你怎麼想「操縱對象作爲表」?你想解析成2d數組嗎?對其執行矩陣操作? –

+0

我想將表格解析成一個excel文檔,我稍後將把它放入一個數據庫等等。最好的方式去做這件事情,但我會逐行去插入數據到Excel文檔。我在Excel文檔中需要它的原因是我可以在各種格式之間更容易地傳輸它(如操縱數據,我會使用R和類似的包) –

回答

0

看看這樣說:

doc = Nokogiri::HTML.parse(browser.html) 
table = doc.at('table#yfncsumtab') 

# iterate through tr's 
table.search('tr').each do |tr| 
    # do something with tr 
end 
1

你知道的Watir具有XPath的支持?

browser.element(:xpath => '//*[@id="yfncsumtab"]') 
+0

每當我嘗試此操作時都會收到此錯誤。找到的= false消息一直困擾着我。 #「// * [@ id = \」yfncsumtab \「]」}> –

+0

'located = false'不是錯誤消息。它是ruby對象的字符串表示的一部分。請在新問題中提供更多信息。 –

0

嘗試browser.element(id: "yfncsumtab").text