Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Срочно! Надо скрипт заходил на следующую страницу 
:(
    Опции темы
irinazanuda
Дата 26.2.2011, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 911
Регистрация: 23.6.2010

Репутация: нет
Всего: 18



Как сделать так, чтобы скрипт заходил на страницу, совершал определённый цикл, а потом заходил на страницу со следующим порядковым номером? Интуитивно понимаю, что как-то так, но мне бы знать, как заставить здесь Руби видеть var как переменную, а не как слово:
login
var=0
while 1
$a.get "http://название.ru/users/var/profile/" do |page|
post_message page, "sbj", "msg"
var=var+1
end
end


Это сообщение отредактировал(а) irinazanuda - 26.2.2011, 20:45
PM MAIL   Вверх
c0va23
Дата 26.2.2011, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 28.11.2010

Репутация: 1
Всего: 3



"http://название.ru/users/#{var}/profile/" так.
PM MAIL   Вверх
irinazanuda
Дата 26.2.2011, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 911
Регистрация: 23.6.2010

Репутация: нет
Всего: 18



Спасибо. сейчас посмотрю будет работать или нет. Спасибо, что ответили.

Это сообщение отредактировал(а) irinazanuda - 28.2.2011, 01:29
PM MAIL   Вверх
irinazanuda
Дата 26.2.2011, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 911
Регистрация: 23.6.2010

Репутация: нет
Всего: 18



пашет, спасибо! Только вот теперь когда он попадает на страницу, которой не существует, - вылетает. А надо, чтобы просто увеличивал var на 1 и пробовал дальше.  

Это сообщение отредактировал(а) irinazanuda - 28.2.2011, 01:30
PM MAIL   Вверх
WarHog
Дата 26.2.2011, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.10.2007
Где: Воронеж

Репутация: нет
Всего: 2



irinazanuda, проще всего воспользоваться begin - rescue
--------------------
PM MAIL   Вверх
irinazanuda
Дата 26.2.2011, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 911
Регистрация: 23.6.2010

Репутация: нет
Всего: 18



А так как сова23 мне нравится - заработал, только это, может напишите такую строчку как сова 23
PM MAIL   Вверх
c0va23
Дата 27.2.2011, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 28.11.2010

Репутация: 1
Всего: 3



Код

$a.get "http://название.ru/users/var/profile/" do |page|
  begin
    post_message page, "sbj", "msg" # << Если ошибка бросается сдесь
  rescue => e
    # Тут можно обработать ошибки
  end
  var=var+1
end


Это сообщение отредактировал(а) c0va23 - 27.2.2011, 00:01
PM MAIL   Вверх
irinazanuda
Дата 27.2.2011, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 911
Регистрация: 23.6.2010

Репутация: нет
Всего: 18



while 1
begin
$a.get "http://название.ru/users/var/profile/" do |page| #ошибка вылезает здесь
rescue => Errno::ECONNREFUSED #это пробовалось и без ECONNREFUSED, и с е вместо ECONNREFUSED
var=var+1
end
post_message page, "sbj", "msg" 
var=var+1
end

Теперь он даже не запускается: говорит, что ему rescue - unexpected. 

Это сообщение отредактировал(а) irinazanuda - 28.2.2011, 01:30
PM MAIL   Вверх
c0va23
Дата 27.2.2011, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 28.11.2010

Репутация: 1
Всего: 3



Цитата(irinazanuda @ 27.2.2011,  00:45)
while 1
begin
$a.get "http://название.ru/users/var/profile/" do |page| #ошибка вылезает здесь
rescue => Errno::ECONNREFUSED #это пробовалось и без ECONNREFUSED, и с е вместо ECONNREFUSED
var=var+1
end
post_message page, "sbj", "msg" 
var=var+1
end

Теперь он даже не запускается: говорит, что ему rescue - unexpected. Я на грани уже.

Ты пишешь rescue не в том месте.
И нужно писать  так:
Код

while 1
  begin
    $a.get "http://название.ru/users/var/profile/" do |page|
      post_message page, "sbj", "msg"
    end
  rescue => e
  end
  var=var+1
end
.
PM MAIL   Вверх
WarHog
Дата 27.2.2011, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.10.2007
Где: Воронеж

Репутация: нет
Всего: 2



irinazanuda, у тебя получается тот end, что относится к do, смешался с тем end'ом, что относится к rescue, т.е. rescue получается внутри пары do - end, и для него нет соответсвующих begin и end

--------------------
PM MAIL   Вверх
irinazanuda
Дата 27.2.2011, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 911
Регистрация: 23.6.2010

Репутация: нет
Всего: 18



Буду пробовать ещё как Вы сказали.

Это сообщение отредактировал(а) irinazanuda - 28.2.2011, 01:31
PM MAIL   Вверх
irinazanuda
Дата 27.2.2011, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 911
Регистрация: 23.6.2010

Репутация: нет
Всего: 18



Всё КЛАССНО!  
теперь stdout сохраняет в файл, но не выводит на экран. Неудобно.

Это сообщение отредактировал(а) irinazanuda - 28.2.2011, 01:32
PM MAIL   Вверх
irinazanuda
Дата 27.2.2011, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 911
Регистрация: 23.6.2010

Репутация: нет
Всего: 18



надо ещё, чтобы он считывал из файла числа, потом сравнивал их с var, и в случае совпадения - пропускал страницу с этим var и просто увеличивал на 1. Такой своеобразный игнор-лист. Ну, можно не из файла, можно и прям в код забить.  теперь stdout сохраняет в файл, но не выводит на экран. 
Цитата(c0va23 @  27.2.2011,  01:00 Найти цитируемый пост)
Без подсветки
while 1
  begin
    $a.get "http://название.ru/users/var/profile/" do |page|
      post_message page, "sbj", "msg"
    end
  rescue => e
  end
  var=var+1
end



Это сообщение отредактировал(а) irinazanuda - 28.2.2011, 01:34
PM MAIL   Вверх
irinazanuda
Дата 27.2.2011, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 911
Регистрация: 23.6.2010

Репутация: нет
Всего: 18



 теперь всё ок с обработкой ошибки, только вот после этого

rescue => e
puts "page http://www.название.ru/users/#{i}/profile doesn't exist"
ensure
i=i+1
end

он мне всегда возвращает сообщение о том, что page doesn't exist, даже когда исключения нет. В принципе, на работу программы не влияет, но это несоответствие 

Это сообщение отредактировал(а) irinazanuda - 28.2.2011, 01:35
PM MAIL   Вверх
WarHog
Дата 27.2.2011, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.10.2007
Где: Воронеж

Репутация: нет
Всего: 2



irinazanuda, блок внутри rescue отрабатывает только в случае исключения. ты уверена, что у тебя там все ок ("даже когда исключения нет")? попробуй убрать rescue и убедиться в этом
--------------------
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0778 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.