2015-03-16 4 views
0

Я хочу проверить строку HTML с рубиновым скриптом. В частности, я хочу рассказать о состоянии местных горных велосипедных маршрутов. Когда следы закрыты, сайт отображает this изображения: Trails closed image.Как проверить код HTML в Ruby

Когда трассы открыты, this изображения:

Trails open image.

код с сайта (usnwc.org):

<div id="trail-status" class="widget widget_tcstatus">  
    <div class="tcwstatus"> 
     <div class='trails-current'> 
      <img src='/wp-content/uploads/2014/10/trailsclosed.png' alt=' Image not found'/> 
     </div>  
    </div> 
</div> 

Я могу проверить, отображается ли какое изображение для возврата статуса. Есть ли способ сделать это в Ruby? Возможно использование Net::HTTP?

ответ

2

Вы можете использовать open-uri и regexp, как показано ниже:

require 'open-uri' 
content = open('http://urltopage.com/trail-path').read 

if content =~ /trailsclosed\.png/ 
    puts "Trails closed!" 
elsif content =~ /trailsopened\.png/ 
    puts "Trails opened!" 
else 
    puts "Oops, images not found?" 
end 
+0

Где 'Http: // urltopage.com/trail_path' будет' HTTP: // usnwc.org/# Тропа-status'? – atwalsh

+0

Да, я просто протестировал его здесь, и он получил это так, как вы ожидали, - просто имейте в виду, что вы собираетесь читать тело полной страницы и полагаться на имя изображения для определения состояния трейлов. Я бы послал предупреждение в блоке 'else', чтобы сообщить мне, что страница изменилась, и изображения не были найдены. –

+0

Отлично. Это отлично работает. Не могли бы вы показать мне, что вы имеете в виду, отправив предупреждение в блок 'else' в ответ? – atwalsh

Смежные вопросы