Ruby:
Tải trang web

Làm thế nào:

Ruby làm cho việc tải một trang web trở nên đơn giản với các thư viện như net/http và gems như open-uri. Dưới đây là cách làm bằng net/http:

require 'net/http'
require 'uri'

url = URI.parse('http://example.com') 
response = Net::HTTP.get_response(url)

puts response.body if response.is_a?(Net::HTTPSuccess)

Bạn sẽ nhận được nội dung HTML của http://example.com được in ra.

Sử dụng open-uri còn đơn giản hơn:

require 'open-uri'

downloaded_page = URI.open('http://example.com').read
puts downloaded_page

Một lần nữa, nội dung của trang web được hiển thị trên terminal của bạn.

Tìm hiểu sâu hơn

Quay lại những ngày đầu của web, việc tải một trang là một việc khá tốn công, bao gồm việc tạo yêu cầu HTTP một cách thủ công. Ngày nay, Ruby đã làm giảm bớt phần lớn sự phức tạp đó.

Các phương án thay thế cho net/httpopen-uri bao gồm các gems cấp cao hơn như HTTPartyRestClient. Chúng cung cấp nhiều tính năng hơn và một phương pháp hướng đối tượng. Đối với việc thu thập dữ liệu web cần nhiều công sức, nhiều Rubyist chuyển sang sử dụng Nokogiri để phân tích HTML hoặc Mechanize hoạt động như một trình duyệt web.

Khi nói đến việc triển khai, hãy nhớ rằng open-uri là một bộ bọc cho net/http, vì vậy nó khá tiện lợi nhưng có thể thiếu một số kiểm soát cấp thấp. net/http cho bạn nhiều kiểm soát hơn về yêu cầu nhưng có thể rườm rà cho các nhiệm vụ đơn giản.

Xem thêm

Để đọc thêm và các nguồn lực bổ sung, hãy kiểm tra: