Я пишу программу, чтобы загрузить изображения из Imgur альбома: Я только начал писать реальное изображение-ссылку-код:Как очистить в Ruby, когда элементы страницы продолжают меняться и перемещаться.
#The imports.
require 'open-uri'
require 'nokogiri'
url = ARGV[0]
#The title.
open(url) do |f|
$doc = Nokogiri::HTML(f)
title = $doc.at_css('title').text.strip.clone
re = /\/[a]\/\w{5}/
s2 = url.match re
puts title
puts s2
end
href = $doc.xpath("//img")
puts href
Когда я столкнулся с серьезной проблемой: страницы, загрузить не является источником страницы.
Например: Этот альбом: http://imgur.com/a/tGRvr/layout/grid имеет следующий код для его изображения:
<span class="post-grid-image pointer" data-href="//i.imgur.com/zh6I7k2.png" data-title="" style="transform: translate(0px, 0px) scale(1); z-index: 0; background-image: url("//i.imgur.com/zh6I7k2b.jpg");"></span>
И все же, когда я смотрю в исходном коде страницы, или запустить код для пролетных элементов, все изображения отсутствует:
<div class="post-images is-owner">
<div class="post-action nodisplay"></div>
</div>
</div>
HTML, является активным, и изменения на основе, как мой браузер. В источнике страницы нет изображений, и все загружается с использованием какой-то странной java-системы. Как я могу очищать активные элементы, когда нет никаких активных элементов для очистки?
И в чем разница между inspect
и 'view-source'? Вот так началась вся эта проблема.
Спасибо. Одна из проблем: URL-адрес не всегда будет «http: // imgur.com/a/tGRvr/layout/grid», есть много URL-адресов, которые я мог бы получить и ввести, это то, для чего используется регулярное выражение. –
Мы не можем вам помочь, если вы не предоставите эту информацию, когда не задаете вопрос после появления ответов; Выполнение этого после того, как мы ответили, тратит наше время. Тем не менее, использование URI по-прежнему является лучшим маршрутом.Независимо от того, что возвращает «путь», вам будет необходимо разместить в вашем коде. Поддержание регулярного выражения может быть намного хуже, чем добавление крошечного фрагмента кода для извлечения третьего, или второго или любого другого, на основе хоста или какой-либо другой информации. –
Вам не нужно быть таким агрессивным, я не пытался напасть на вас. Кроме того, мне нужно научиться регулярному выражению. –