Làm cách nào để lấy dữ liệu trang của một trang web khác ở đâu đó trên web bằng ruby trên đường ray?Nhận html từ trang web có ruby trên đường ray
5
A
Trả lời
6
Bạn có thể sử dụng httparty chỉ lấy dữ liệu
Mẫu mã (từ example):
require File.join(dir, 'httparty')
require 'pp'
class Google
include HTTParty
format :html
end
# google.com redirects to www.google.com so this is live test for redirection
pp Google.get('http://google.com')
puts '', '*'*70, ''
# check that ssl is requesting right
pp Google.get('https://www.google.com')
Nokogiri thực sự xuất sắc trong việc phân tích dữ liệu mà .. Dưới đây là một số mã ví dụ từ Railscast:
url = "http://www.walmart.com/search/search-ng.do?search_constraint=0&ic=48_0&search_query=batman&Find.x=0&Find.y=0&Find=Find"
doc = Nokogiri::HTML(open(url))
puts doc.at_css("title").text
doc.css(".item").each do |item|
title = item.at_css(".prodLink").text
price = item.at_css(".PriceCompare .BodyS, .PriceXLBold").text[/\$[0-9\.]+/]
puts "#{title} - #{price}"
puts item.at_css(".prodLink")[:href]
end
5
Sử dụng Net/HTTP
(ví dụ, đọc this cheatsheet):
require "net/https"
http = Net::HTTP.new "google.com", 80
request = Net::HTTP::Get.new "/"
response = http.request request
puts response.code
puts response.body
3
Net::HTTP tàu trong thư viện chuẩn, đó là một lợi thế, nhưng có mát thư viện cấp cao hơn bạn có thể có một cái nhìn tại, như rest-client:
RestClient.get('http://example.com/resource', params: {x: "1", y: "2"})
3
Tôi thích OpenURI bản thân mình nếu nó chỉ đơn giản là có được nội dung không ồn ào.
Chỉ cần thêm require 'open-uri'
vào môi trường và sau đó thực hiện open('http://domain.tld/document.html').read
.
Các vấn đề liên quan
- 1. ruby tốt nhất trên đường ray cms
- 2. Chạy nhiều trang web từ cùng một codebase đường ray?
- 3. Tích hợp django và RoR (ruby trên đường ray)
- 4. Mahout Plugin cho ruby trên đường ray
- 5. làm thế nào để nhúng một thiết bị đầu cuối bash linux bên trong ruby trên trang web đường ray?
- 6. Bố cục lồng nhau trong ruby trên đường ray
- 7. Làm thế nào để nhận được tổng số trang của pdf hiện có trong ruby trên đường ray?
- 8. ruby trên đường ray nếu tuyên bố với boolean trên trang index.html.erb
- 9. Nhận tên trang web IIS từ một trang web ASP.NET
- 10. Biểu đồ trong Ruby trên đường ray 3 ứng dụng web
- 11. tạo các trình trợ giúp html tùy chỉnh trong ruby trên đường ray
- 12. Nhiều trang web trong nhiều dự án trên cùng một máy chủ đường ray
- 13. ruby (1.9.3) trên đường ray (3.2.3) Activerecord-odbc-adapter
- 14. nội dung động với ajax (ruby trên đường ray)
- 15. Toán tử giống như trong ruby trên đường ray
- 16. Thông báo mở email - ruby trên đường ray
- 17. Sự cố mã hóa đường ray trên ruby 1.9.1
- 18. ruby trên đường ray giúp đỡ số nhiều?
- 19. Đặt cấu hình Notepad ++ cho ruby trên đường ray
- 20. Ẩn an toàn web-shopsocket trong đường ray trên mỏng
- 21. Cách gọi phương thức trong một ứng dụng từ một ứng dụng khác trên ruby trên đường ray
- 22. Cách thêm thông báo xác nhận với link_to Ruby trên đường ray
- 23. xóa cơ sở dữ liệu ứng dụng đường ray trên trang web sản xuất heroku
- 24. Nhận HTML của trang có awesomium
- 25. thực hiện một đường ray before_filter trong ruby mà không có đường ray
- 26. Ngăn chặn ruby trên đường ray 3 từ phân tích cú pháp bài đăng JSON
- 27. rackspace so với EC2 vs Heroku vs Engine Yard cho ruby trên đường ray
- 28. Ruby, nhận được đường đi từ đường + filename
- 29. Làm cách nào để sao chép Cơ sở dữ liệu mySQL bằng ruby trên đường ray?
- 30. ruby trên đường ray đăng nhập tập tin lớn -> loại bỏ params từ nó
Cảm ơn vì điều này. Nó chỉ có thể là tấm vé cho một dự án mới của tôi. –