Tôi đang cố gắng hiểu Nokogiri. Có ai có một liên kết đến một ví dụ cơ bản của phân tích Nokogiri/scrape cho thấy cây kết quả. Hãy nghĩ nó sẽ thực sự giúp tôi hiểu.Một số ví dụ về cách sử dụng Nokogiri là gì?
Trả lời
Sử dụng IRB và Ruby 1.9.2:
tải Nokogiri:
1.9.2-p290 :001 > require 'nokogiri'
true
Phân tích một tài liệu:
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 thích tài liệu cũng được hình thành. Lưu ý rằng nó đã thêm DOCTYPE
vì tôi đã phân tích cú pháp dưới dạng tài liệu. Cũng có thể phân tích cú pháp thành một đoạn tài liệu, nhưng điều đó khá chuyên biệt.
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"
Tìm kiếm tài liệu để tìm ra đầu tiên <p>
nút sử dụng CSS và lấy nội dung của nó:
1.9.2-p290 :004 > doc.at('p').text
"foobar"
Sử dụng một tên phương pháp khác nhau để làm điều tương tự:
1.9.2-p290 :005 > doc.at('p').content
"foobar"
Tìm kiếm tài liệu cho tất cả các nút <p>
bên trong thẻ <body>
và lấy nội dung của thẻ đầu tiên. search
trả về một nút, giống như một mảng các nút.
1.9.2-p290 :006 > doc.search('body p').first.text
"foobar"
Thay đổi nội dung của nút:
1.9.2-p290 :007 > doc.at('p').content = 'bar'
"bar"
Phát ra một tài liệu phân tích cú pháp dưới dạng 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"
Hủy bỏ một nút:
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"
Đối cào, có rất nhiều câu hỏi về SO sử dụng Nokogiri để tách HTML ra khỏi các trang web. Tìm kiếm StackOverflow cho "nokogiri and open-uri" sẽ hữu ích.
Cũng tìm thấy giới thiệu tốt từ đồng tác giả: http://www.engineyard.com/blog/2010/getting-started-with-nokogiri/ cũng sơ đồ cây được đề cập trong bài viết có thể được xem tại: http://rubyreflector.com /Cấu trúc dữ liệu – user1094747
- 1. Một số ví dụ về cách sử dụng Bảng dữ liệu WPF tốt là gì?
- 2. OSGi là gì và một số ví dụ về việc sử dụng nó?
- 3. Ví dụ về cách sử dụng SetupDiGetDeviceProperty
- 4. Ví dụ về cách sử dụng TLoginCredentialService
- 5. Ví dụ về sử dụng cây Judy
- 6. Ví dụ về việc sử dụng Generics.Collections.TObjectDictionary
- 7. Ví dụ về AIDL sử dụng
- 8. Ví dụ tốt về sử dụng libpurple?
- 9. Một số ví dụ điển hình khi sử dụng OUTER JOIN của SQL là gì?
- 10. Ví dụ về AES sử dụng Crypto ++
- 11. Một số ví dụ về LISP được sử dụng trong sản xuất, ngoài AI và học viện là gì?
- 12. Một số ví dụ hay về JQuery khi sử dụng JSONP đang nói chuyện với .net là gì?
- 13. Ví dụ điển hình về việc sử dụng biến đăng ký trong C là gì?
- 14. Tôi thấy nhiều ví dụ về C++ với việc sử dụng "Foo^bar" - "^" là gì?
- 15. Có ví dụ SIMPLE về Cách sử dụng buckminster
- 16. Ví dụ về một số đánh dấu không hợp lệ là gì?
- 17. Một số ví dụ ấn tượng về mã chức năng là gì?
- 18. Ví dụ điển hình về việc sử dụng 'ràng buộc' trong clojure là gì?
- 19. CreateProcessWithTokenW - Ví dụ về cách sử dụng trong C#
- 20. Ví dụ về Waffle SSO này là gì
- 21. Ví dụ thực tế về ACID là gì?
- 22. Ví dụ về nhiệm vụ "này" trong C# là gì?
- 23. ví dụ về ứng dụng sử dụng vaadin
- 24. Ví dụ về clojure? đối số đơn
- 25. Ví dụ về pysmb
- 26. Đa hình tham số trong Java (ví dụ) là gì?
- 27. Ví dụ về Winsock?
- 28. _CrtCheckMẫu sử dụng ví dụ
- 29. Ví dụ về D.ccurl
- 30. Một số ví dụ về đời sống thực tế được sử dụng trong phần mềm
Bạn đã xem tài liệu hướng dẫn/hướng dẫn: http://nokogiri.org/tutorials. Câu hỏi này hơi quá chung chung, có thể bị đóng lại;) –
Thông tin này có trong tài liệu Nokogiri. Ngoài ra, nếu bạn sẽ xem qua một số liên kết có liên quan ở phía bên phải của trang, bạn sẽ tìm thấy các ví dụ về cách sử dụng Nokogiri, cùng với các ví dụ về đầu ra của nó. –