Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > Загрузка страницы с помощью ruby


Автор: Rname 20.4.2010, 17:41
Такая пробема: есть код - см. ниже 

Код

array_html = ["about.php", "index.html", "index.htm", "index2.htm", "firefox"]                     #
index_of_array_html = 0        

puts "enter url"
var_puts = gets         #или лучше gets.chop  ?

while        index_of_array_html != array_html.size
                                                    begin                                              
            var = array_html[index_of_array_html]  
                     
            puts var
            index_of_array_html = index_of_array_html + 1
        
                require 'open-uri'                                                                 
                File.open('D:\\' + 'AWEBScan\\' + var + '.htm', 'a'){ |file|                                  
                file.write open('http://' + var_puts + '/' + var).read                              
                }                                                                                 
                                                   rescue    
                                                    
                                                    File.delete('D:\\' + 'AWEBScan\\' + var1 + '.htm')
                                                    retry
                                                    end        
end


- когда я пишу в строчке -   file.write open('http://' + var_puts + '/' + var).read  начальный url, например www.google.ru, полностью, 
т.е. file.write open('http://www.google.ru' + var).read 
то проблем нет и код работает. Но когда я пишу так, как здесь - с помощью 2х, а не 1 переменной, то происходить следующее:
а) либо страницы не скачиваются вообще.
б) либо скачиваются стр. которые есть, а остальные становятся такие же по размеру и содержанию, даже если их нет вообще.
Не могу понять в чем ошибка. В чем может быть проблема?
И второе - м.б. есть другие способы скачивания веб-страниц (в частности, меня интересует, чтобы директории м.б. брать из массива).
Заранее благодарю за ответы.

Автор: source777 27.4.2010, 21:42
Цитата(Rname @  20.4.2010,  17:41 Найти цитируемый пост)
В чем может быть проблема?

К.О.: в том что gets возвращает введённую строку вместе с переводом строки.

Цитата(Rname @  20.4.2010,  17:41 Найти цитируемый пост)
в частности, меня интересует, чтобы директории м.б. брать из массива

И как это относится к скачиванию страниц? Генерируй нужные url-ы как угодно...
Только проверяй, что ты там нагенерировал  smile 
Код

url = 'http://' + var_puts + '/' + var
puts url

Автор: Rname 29.4.2010, 10:39
Цитата(source777 @ 27.4.2010,  21:42)
Цитата(Rname @  20.4.2010,  17:41 Найти цитируемый пост)
в частности, меня интересует, чтобы директории м.б. брать из массива

И как это относится к скачиванию страниц? Генерируй нужные url-ы как угодно...
Только проверяй, что ты там нагенерировал  smile 
Код

url = 'http://' + var_puts + '/' + var
puts url

собственное в моем случае - напрямую  smile 
по поводу первого вопроса: где-то можно посмотреть др. способы получения вводимых данных? (это чтобы не заводить новую тему) 

Автор: source777 29.4.2010, 17:51
Цитата(Rname @  29.4.2010,  10:39 Найти цитируемый пост)
где-то можно посмотреть др. способы получения вводимых данных?

а зачем, у тебя в комментарии вполне себе рабочий вариант, с chop.

Цитата(Rname @  29.4.2010,  10:39 Найти цитируемый пост)
собственное в моем случае - напрямую  smile

Скорее в твоём сознании, а не в твоём случае. Т.к. генерация URL-ов и скачивание веб-страниц вообще никак не связанные задачи.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)