Нашли изображения и ссылки в HTML-коде в ruby

1

Мне нужно сделать программу в рубине, которая, учитывая адрес в Интернете по аргументу командной строки (argv), возвращает список найденных изображений (изображения в HTML отвечают на тег "") и список всех ссылок, которые являются интернет-адресами для ссылки на другие страницы (ссылки в HTML отвечают на метку)

Пока отделите строку кода страницы со знаками> и

Код на данный момент

require 'net/http'
pagina= Net::HTTP.get(ARGV[0], '/index.html')
xx = pagina.split(/[<,>]/)
puts xx
puts xx.scan(/a href=/)
  • 2
    H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ
  • 0
    < a alt="Image" href="/example.png" /> будет совершенно невидимым для вашего подхода с использованием регулярных выражений. Используйте правильную библиотеку разбора, потому что HTML обманчиво сложен.
Теги:

1 ответ

2
Лучший ответ

Не используйте регулярные выражения для анализа HTML.

Используйте парсер HTML. Например, Нокогири:

require 'net/http'
require 'nokogiri'

pagina = Net::HTTP.get(ARGV[0], '/index.html')
Nokogiri::HTML(pagina).css('a').map { |link| link['href'] }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню