proc web2data { website } { package require http # Отправляем http запрос, указываем таймаут и используем catch для того, чтобы избежать остановки # выполнения процедуры в случае проблем связи с сайтом или ошибок. if { [catch { set token [http::geturl $website -timeout 3000]} error] } { putcmdlog "web2data: Error: $error" # Если указанный адрес не существует. } elseif { [http::ncode $token] == "404" } { putcmdlog "web2data: Error: [http::code $token]" # Проверяем статус запроса, если все хорошо, то в переменной $data оказывается код страницы } elseif { [http::status $token] == "ok" } { set data [http::data $token] # Если время соединения превышено, то пишем в лог об этом. } elseif { [http::status $token] == "timeout" } { putcmdlog "web2data: Timeout occurred" # Тоже самое с остальными ошибками. } elseif { [http::status $token] == "error" } { putcmdlog "web2data: Error: [http::error $token]" } # И наконец, освобождаем переменные токена для последующих операций. http::cleanup $token if { [info exists data] } { return $data } else { return 0 } }