我想了解Nokogiri。有沒有人有鏈接到Nokogiri解析/刮的基本例子顯示結果樹。認爲這將有助於我的理解。什麼是使用Nokogiri的一些例子?
7
A
回答
10
採用IRB和Ruby 1.9.2:
負載引入nokogiri:
1.9.2-p290 :001 > require 'nokogiri'
true
解析一個文檔:
1.9.2-p290 :002 > doc = Nokogiri::HTML('<html><body><p>foobar</p></body></html>')
#<Nokogiri::HTML::Document:0x1012821a0
@node_cache = [],
attr_accessor :errors = [],
attr_reader :decorators = nil
引入nokogiri喜歡中規中矩的文檔。請注意,它添加了DOCTYPE
,因爲我將其解析爲文檔。也可以將它解析爲文檔片段,但這很專業。
1.9.2-p290 :003 > doc.to_html
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body><p>foobar</p></body></html>\n"
搜索文件,找到第一<p>
節點中使用CSS和抓住它的內容:
1.9.2-p290 :004 > doc.at('p').text
"foobar"
使用不同的方法名做同樣的事情:
1.9.2-p290 :005 > doc.at('p').content
"foobar"
搜索爲<body>
標籤中的所有<p>
節點生成文檔,並獲取第一個標籤的內容。 search
返回一個節點集,它就像一個節點數組。
1.9.2-p290 :006 > doc.search('body p').first.text
"foobar"
更改節點的內容:
1.9.2-p290 :007 > doc.at('p').content = 'bar'
"bar"
發射分析的文檔作爲HTML:
1.9.2-p290 :008 > doc.to_html
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body><p>bar</p></body></html>\n"
刪除節點:
1.9.2-p290 :009 > doc.at('p').remove
#<Nokogiri::XML::Element:0x80939178 name="p" children=[#<Nokogiri::XML::Text:0x8091a624 "bar">]>
1.9.2-p290 :010 > doc.to_html
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body></body></html>\n"
至於刮,關於SO的問題有很多使用Nokogiri從網站撕開HTML。在StackOverflow中搜索「nokogiri and open-uri」應該有所幫助。
+0
還發現從共同創造者很好的介紹:http://www.engineyard.com/blog/2010/getting-started-with-nokogiri/文章中提到的樹形圖可以看到:http://rubyreflector.com /數據結構 – user1094747
相關問題
- 1. 什麼是動態鑄造的一些'很好用'的例子?
- 2. 什麼是匿名類型如何有用的一些例子?
- 3. 什麼是使用nHibernate的web 2.0網站的一些很好的例子?
- 4. 什麼是使用JavaScript的PHP的侷限性的一些例子?
- 5. 什麼是使用SQL的OUTER JOIN的一些很好的例子?
- 6. 什麼是動作腳本中的遊戲的一些例子?
- 7. 什麼是順序決策任務的一些例子?
- 8. 什麼是配置語言的一些例子?
- 9. 什麼是一些無效降價的例子?
- 10. 什麼是使用一些邏輯數組處理函數的例子?
- 11. Nokogiri的Ruby Hpricot是什麼?
- 12. 雲計算是指什麼?舉一些例子
- 13. 什麼是'delete'在JavaScript中非常有用的一些用例?
- 14. 什麼是用戶文檔的例子?
- 15. 使用Nokogiri提取一些JSON
- 16. XPath與nokogiri一起;教程/例子嗎?
- 17. 爲什麼在這些例子中
- 18. 這些例子(*和&)有什麼區別?
- 19. 元組結構的一些用例是什麼?
- 20. 什麼是使用Spring和Hibernate的一些很好的示例應用程序?
- 21. 這些關於會話固定的例子是什麼意思?
- 22. Java中的WS-Eventing客戶端的一些很好的例子是什麼?
- 23. 一些例子使用特定searchalgorithm
- 24. 什麼是線程不安全的Python代碼的一些例子?
- 25. 是否有一些實際的例子使用Object :: *
- 26. 爲什麼一些OpenCL示例用C++編寫而不是C?
- 27. 什麼通過讀取internet.In單詞計數的例子一些例子是MapReduce的
- 28. 爲什麼PHP的simplexml允許addChild在這些例子之一中,但不是其他的例子?
- 29. 這些子集的順序是什麼?
- 30. 什麼是PHP中的MVC的例子?
你看過文檔/教程:http://nokogiri.org/tutorials。這個問題有點過於籠統,可能會關閉;) –
這些信息位於Nokogiri文檔中。另外,如果您將瀏覽頁面右側的一些相關鏈接,可以找到使用Nokogiri的示例以及其輸出示例。 –