Ruby:
Загрузка веб-страницы
Как это сделать:
Ruby делает скачивание веб-страницы простым с помощью библиотек вроде net/http и гемов, таких как open-uri. Вот как это сделать используя 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)Вы получите HTML-содержимое http://example.com на печать.
Использование open-uri еще проще:
require 'open-uri'
downloaded_page = URI.open('http://example.com').read
puts downloaded_pageОпять же, содержимое веб-страницы отобразится в вашем терминале.
Глубже
В старые времена интернета, скачивание страницы было немного более трудоемким и включало ручное создание HTTP-запросов. Сегодня Ruby значительно упрощает эту сложность.
Альтернативы net/http и open-uri включают более высокоуровневые гемы вроде HTTParty и RestClient. Они предлагают больше функций и объектно-ориентированный подход. Для серьезного веб-скрапинга многие рубисты обращаются к Nokogiri для разбора HTML или к Mechanize, который действует как веб-браузер.
С точки зрения реализации, имейте в виду, что open-uri является оберткой для net/http, поэтому он довольно удобен, но может не иметь некоторого низкоуровневого контроля. net/http дает вам больше контроля над запросом, но может быть многословным для простых задач.
Смотрите также
Для дальнейшего чтения и дополнительных ресурсов обратите внимание на:
- Документация Ruby’s Net::HTTP: https://ruby-doc.org/stdlib-3.0.0/libdoc/net/http/rdoc/Net/HTTP.html
- Документация Open-URI: https://ruby-doc.org/stdlib-3.0.0/libdoc/open-uri/rdoc/OpenURI.html
- Веб-страница Nokogiri: https://nokogiri.org/
- Репозиторий гема Mechanize: https://github.com/sparklemotion/mechanize
- Гем HTTParty на GitHub: https://github.com/jnunemaker/httparty
- Гем RestClient: https://github.com/rest-client/rest-client