perl и авторизация прокси (скриптик для conky)

Модератор: Модераторы разделов

Аватара пользователя
Dimon93rus
Сообщения: 428
Статус: Kernel Killer

perl и авторизация прокси

Сообщение Dimon93rus »

Всем здрасте.
Есть скриптик для коньков, который должен брать цитату с bash.org.ru и обрабатывать её соответствующим образом.
Проблема заключается в том, что необходимо указать логин и пароль для авторизации на прокси сервере, а как это сделать я не знаю.
Вот собственно сам скрипт:

Код:

#!/usr/bin/perl -W use strict; #use LWP::Simple; use LWP::UserAgent; use Text::Wrap qw($columns &wrap); # С помощью этого параметра указывается макс длина строки $columns=60; #Забираем цитату с сервака my $browser = LWP::UserAgent->new; $browser->env_proxy; #$browser->proxy(['http'], '192.168.1.253:3128'); my $URL="http://bash.org.ru/forweb/?u"; my $content = $browser->get($URL); #обрабатываем, оставляем только текст $content=~/\<\'\s\+\s\'br\>(.*)\<\'\s\+\s\'br\>/; $content=$1; $content=~s/\<\'\s\+\s\'br\>/\n/g; $content=~s/\<\'\s\+\s\'br\s+\/\>/\n/g; $content=~s/\&lt//g; $content=~s/\&gt//g; $content=~s/\&quot\;/\"/g; print wrap("", "", $content); #print $content; print "\n"; #the end

Пробовал указать в .bashrc:
http_proxy=http://user:pass@192.168.1.253:3128/
HTTP_PROXY=$http_proxy
export http_proxy HTTP_PROXY
Но это тоже не помогло.
Выдаёт следующее сообщение:
Use of uninitialized value in substitution (s///) at /home/denisenko/.conky/bash.sh line 22.
Use of uninitialized value in substitution (s///) at /home/denisenko/.conky/bash.sh line 23.
Use of uninitialized value in substitution (s///) at /home/denisenko/.conky/bash.sh line 24.
Use of uninitialized value in substitution (s///) at /home/denisenko/.conky/bash.sh line 25.
Use of uninitialized value in substitution (s///) at /home/denisenko/.conky/bash.sh line 26.
Use of uninitialized value in join or string at /usr/share/perl/5.8/Text/Wrap.pm line 35.
Ubuntu Server 10.04 x86, Calculate Linux 11.6 x86
Спасибо сказали:
Аватара пользователя
gcc
Сообщения: 526
ОС: FreeBSD 8.0 CURRENT

Re: perl и авторизация прокси

Сообщение gcc »

Код: Выделить всё

#use strict;
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: perl и авторизация прокси

Сообщение diesel »

Код: Выделить всё

my $browser = LWP::UserAgent->new;
$browser->env_proxy;
#$browser->proxy(['http'], '192.168.1.253:3128');
my $URL="http://bash.org.ru/forweb/?u";
my $response = $browser->get($URL);
my $content = $response->content;
Спасибо сказали:
Аватара пользователя
Dimon93rus
Сообщения: 428
Статус: Kernel Killer

Re: perl и авторизация прокси

Сообщение Dimon93rus »

Не получается.... :(
Выводит те же сообщения:
Use of uninitialized value in substitution (s///) at ./bash.sh line 23.
Use of uninitialized value in substitution (s///) at ./bash.sh line 24.
Use of uninitialized value in substitution (s///) at ./bash.sh line 25.
Use of uninitialized value in substitution (s///) at ./bash.sh line 26.
Use of uninitialized value in substitution (s///) at ./bash.sh line 27.
Use of uninitialized value in join or string at /usr/share/perl/5.8/Text/Wrap.pm line 35

UPD: Извиняюсь, помогло, всем спасибо :)
Ubuntu Server 10.04 x86, Calculate Linux 11.6 x86
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: perl и авторизация прокси

Сообщение diesel »

Вот так работает твой вариант:

Код: Выделить всё

diesel@indie:~$ ./bash
Parsing of undecoded UTF-8 will give garbage when decoding entities at /System/Library/Perl/Extras/5.8.8/LWP/Protocol.pm line 114.
Use of uninitialized value in substitution (s///) at ./bash line 22.
Use of uninitialized value in substitution (s///) at ./bash line 23.
Use of uninitialized value in substitution (s///) at ./bash line 24.
Use of uninitialized value in substitution (s///) at ./bash line 25.
Use of uninitialized value in substitution (s///) at ./bash line 26.
Use of uninitialized value in join or string at /System/Library/Perl/5.8.8/Text/Wrap.pm line 35.


Вот так работает мой вариант:

Код: Выделить всё

diesel@indie:~$ ./bash.pl
Parsing of undecoded UTF-8 will give garbage when decoding entities at /System/Library/Perl/Extras/5.8.8/LWP/Protocol.pm line 114.
Леди_20: Димыч, вопрос срочный
Поездатый чувак: ну?
Леди_20: какой у меня размер
груди?


Мой вариант полностью, если ты намеки не понимаешь:

Код:

#!/usr/bin/perl -W use strict; #use LWP::Simple; use LWP::UserAgent; use Text::Wrap qw($columns &wrap); # С помощью этого параметра указывается макс длина строки $columns=60; #Забираем цитату с сервака my $browser = LWP::UserAgent->new; $browser->env_proxy; #$browser->proxy(['http'], '192.168.1.253:3128'); my $URL="http://bash.org.ru/forweb/?u"; my $response = $browser->get($URL); my $content = $response->content; #обрабатываем, оставляем только текст $content=~/\<\'\s\+\s\'br\>(.*)\<\'\s\+\s\'br\>/; $content=$1; $content=~s/\<\'\s\+\s\'br\>/\n/g; $content=~s/\<\'\s\+\s\'br\s+\/\>/\n/g; $content=~s/\&lt//g; $content=~s/\&gt//g; $content=~s/\&quot\;/\"/g; print wrap("", "", $content); #print $content; print "\n";


С авторизацией на прокси протестить не могу, но к этим ошибкам прокси никакого отношения не имеет - даже если ты получишь контент, ты их все-равно увидишь :)

ЗЫ: впрочем, ты их увидишь и если авторизация в прокси не сработает и контента не будет :)
Спасибо сказали: