| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Ruby: Общие вопросы > Срочно! Надо скрипт заходил на следующую страницу |
| Автор: irinazanuda 26.2.2011, 20:06 |
| Как сделать так, чтобы скрипт заходил на страницу, совершал определённый цикл, а потом заходил на страницу со следующим порядковым номером? Интуитивно понимаю, что как-то так, но мне бы знать, как заставить здесь Руби видеть 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 |
| Автор: c0va23 26.2.2011, 22:33 |
| "http://название.ru/users/#{var}/profile/" так. |
| Автор: irinazanuda 26.2.2011, 22:56 |
| Спасибо. сейчас посмотрю будет работать или нет. Спасибо, что ответили. |
| Автор: irinazanuda 26.2.2011, 23:27 |
| пашет, спасибо! Только вот теперь когда он попадает на страницу, которой не существует, - вылетает. А надо, чтобы просто увеличивал var на 1 и пробовал дальше. |
| Автор: WarHog 26.2.2011, 23:46 |
| irinazanuda, проще всего воспользоваться begin - rescue |
| Автор: irinazanuda 26.2.2011, 23:54 |
| А так как сова23 мне нравится - заработал, только это, может напишите такую строчку как сова 23 |
| Автор: c0va23 27.2.2011, 00:00 | ||
|
| Автор: 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. |
| Автор: c0va23 27.2.2011, 01:00 | ||||
Ты пишешь rescue не в том месте. И нужно писать так:
|
| Автор: WarHog 27.2.2011, 01:01 |
| irinazanuda, у тебя получается тот end, что относится к do, смешался с тем end'ом, что относится к rescue, т.е. rescue получается внутри пары do - end, и для него нет соответсвующих begin и end |
| Автор: irinazanuda 27.2.2011, 01:14 |
| Буду пробовать ещё как Вы сказали. |
| Автор: irinazanuda 27.2.2011, 02:22 |
| Всё КЛАССНО! теперь stdout сохраняет в файл, но не выводит на экран. Неудобно. |
| Автор: irinazanuda 27.2.2011, 13:31 |
| теперь всё ок с обработкой ошибки, только вот после этого rescue => e puts "page http://www.название.ru/users/#{i}/profile doesn't exist" ensure i=i+1 end он мне всегда возвращает сообщение о том, что page doesn't exist, даже когда исключения нет. В принципе, на работу программы не влияет, но это несоответствие |
| Автор: WarHog 27.2.2011, 13:56 |
| irinazanuda, блок внутри rescue отрабатывает только в случае исключения. ты уверена, что у тебя там все ок ("даже когда исключения нет")? попробуй убрать rescue и убедиться в этом |
| Автор: irinazanuda 27.2.2011, 14:37 | ||
попробовала. Да ок там все, когда он попадает на страницу, которая есть - выдаёт сразу два сообщения: о том, что всё ок и о том, что страницы нет. |