WWW :: Mechanize- ›получить ошибку (HTTPS не поддерживается)

Я пытаюсь использовать WWW :: Mechanize для входа в Yahoo. Однако, когда я пытаюсь получить страницу входа, появляется ошибка

Error GETing https://login.yahoo.com/config/login_verify2?&.src=ym: Protocol scheme 'https' is not supported (LWP::Protocol::https not installed)

Я установил Crypt :: SSLeay, который, как я думал, должен был обрабатывать HTTPS-запросы. Почему он выдает эту ошибку?

Я даже говорю «используйте Crypt :: SSLeay» в начале скрипта, и это не выдает ошибки относительно того, что он не установлен.

Сходил бы в Я. сначала страницу (http), а затем "щелкнув" по ссылке "Войти" (https)?

Любая помощь или совет будут оценены.

РЕДАКТИРОВАТЬ: я попытался установить LWP :: Protocol: https, но это не удалось.

ИЗМЕНИТЬ СНОВА: установка Crypt :: SSLeay с тестами приводит к тому же сбою. -_-

ИЗМЕНИТЬ 3-Й РАЗ: Спасибо, что помогли мне, ребята. Извините за задержку с ответом. Это Redhat 9, и вся установка довольно сильно испорчена.

Моей первоначальной целью было просто установить WWW :: Mechanize, чтобы иметь возможность входить в Yahoo. Системный администратор (наш учитель) установил perl 5.8.7, что привело к сбою isntallation --- из-за неспособности LWP :: UserAgent обновиться до версий ниже 5.8.8.

Затем я установил Perl 5.10.1 в свой домашний каталог с помощью App :: perlbrew и успешно установил Mech. Однако это создало множество проблем с совместимостью с использованием старых модулей, которые я установил (с использованием 5.8.7). Теперь я не знаю, как все удалить, и у меня осталось всего 15 мегабайт на диске.

OpenSSL уже был в системе, но я установил еще один OpenSSL сегодня утром в свой домашний каталог, загрузив tarball с зеркала и скомпилировав его. По всей видимости, это была последняя версия.

Одно убивает меня. У меня нет прав суперпользователя, чтобы что-либо делать. Этот проект должен быть завершен в пятницу, поэтому я думаю, что откажусь от него и сделаю что-нибудь, что вообще не связано с HTTPS.

Я прочитал, что мне нужно просто выполнить yum install openssl-devel, но я не могу этого сделать без прав root. Если кто-нибудь знает, как это сделать, дайте мне знать.

Я попробую ваш совет по принудительной установке Net :: SSLeay и дам вам знать позже.

Теперь я попытался установить Mech в какой-то другой каталог (подальше от вещей 5.8.7), и это не удалось ... тьфу ...

РЕДАКТИРОВАНИЕ 4: Я принудительно установил Net :: SSLeay. Вот журнал: не работает. Вы правы насчет библиотек SSL.

5 РЕДАКТИРОВАНИЕ: ЯАААААААААААААААЙЫ! Учитель установил openssl-devel, и теперь он работает !!!!!!!!


person Johnny    schedule 18.05.2011    source источник
comment
Вероятно, вам не хватает библиотеки OpenSSL.   -  person i-blis    schedule 18.05.2011
comment
Из журнала ясно, что IO :: Socket :: SSL не установлен. Как я уже сказал, вам нужно установить библиотеку OpenSSL и оболочку Net :: SSLeay.   -  person i-blis    schedule 18.05.2011
comment
О, как мы весело проводим время. Я бы попытался сначала установить только Net :: SSLeay, используя «принудительную установку», если это необходимо. затем попробуйте снова установить LWP :: Protocol :: https, мы надеемся, что тогда он будет правильно собран и протестирован.   -  person Alex    schedule 18.05.2011
comment
попробуйте Net :: SSLeay, а не Crypt :: SSLeay. Вы установили OpenSSL из исходников (у вас старая версия).   -  person i-blis    schedule 18.05.2011


Ответы (2)


Детали установки зависят от вашей платформы. Вам в основном понадобятся:

1) Библиотека OpenSSL 2) Модуль привязки Perl Net :: SSLeay

person i-blis    schedule 18.05.2011
comment
да. Я озадачен тем, что Net :: SSLeay прошел тесты, хотя openssl все еще требовал установки. - person Alex; 18.05.2011
comment
Я произвел принудительную установку Net :: SSLeay, иначе он не прошел тесты и не прошел. Оказалось, что это было простое решение - вместо того, чтобы устанавливать OpenSSL из исходного кода, все, что мне нужно было сделать, это попросить учителя установить пакет yum openssl-devel, поскольку у него были права root для этого. После этого мне не пришлось ничего делать - с https он работал как шарм. - person Johnny; 18.05.2011

WWW :: Mechanize использует LWP :: UserAgent под капотом (как базовый класс) для получения URL-адресов. Из документации для этого я вижу, что вам нужно установить http://search.cpan.org/~gaas/LWP-Protocol-https-6.02/lib/LWP/Protocol/https.pm для поддержки URL-адресов https.

person Alex    schedule 18.05.2011