Проблемы с Perl Mechanize и прокси

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

Я прочитал документы cpan для: WWW-Mechanize/lib/WWW/Mechanize/FAQ.pod libwww-perl-5.837/lib/LWP/UserAgent.pm

И каждый кусочек кода или статьи, которые я смог найти в Google.

Это мой первый раз, когда я ищу помощь по переполнению стека. Заранее благодарны за Вашу помощь. Вот код:

#!/usr/bin/perl

use WWW::Mechanize;

my $mech = WWW::Mechanize->new ( agent => "Mozilla/5.0" );

my $proxy = 'http://fetch4.me';

$mech->no_proxy('localhost');
$mech->proxy(['http', 'https', 'gopher'], $proxy) or die $!;
$mech->get('http://www.google.com');

print $mech->uri(),"\n";
print $mech->content(),"\n";
print $mech->text(),"\n";
print $mech->status(),"\n";

Вот результат:

http://www.google.com
<html>Apache is functioning normally</html>

Apache is functioning normally
200

У меня заканчиваются идеи. Этот код работает для вас? Дает ли он такие же результаты? Что с этим не так? >.‹

Спасибо за ваше время.


person PSCO    schedule 07.12.2010    source источник


Ответы (2)


Проблема похоже в сервере fetch4.me. Попробуйте, например, вместо

мой $proxy = 'http://124.207.162.87:80';

person Olod    schedule 08.12.2010
comment
Большое спасибо за ваш вклад. Кажется, теперь он работает правильно. Похоже, у меня все было правильно, за исключением того, что fetch4.me никогда не заработает. Я тестировал другие прокси, все они вели себя так же, как fetch4me. Я нашел альтернативный список прокси, которые будут работать. Спасибо, что помогли мне решить эту проблему, я очень расстроился. Теперь я чувствую себя глупо, нужно было сделать больше тестов. Я пытался оценить ваш ответ, но мне не хватает репутации =\ - person PSCO; 10.12.2010

Говорит ли:

my $mech = WWW::Mechanize->new ( agent => "Mozilla/5.0", noproxy => 1 );

помощь?

Документ подразумевает, что вам нужно сделать это, чтобы избежать неявного вызова env_proxy LWP.

person ysth    schedule 07.12.2010
comment
Спасибо за ваш ответ ysth. Я внес изменения, как вы указали, и, похоже, это не влияет на результат. Как ни странно, если я заменю домен, который, как я знаю, не работает или не работает, вместо www.google.com, я получу тот же результат. Таким образом, похоже, что хотя $mech-›uri() указывает, что я получаю контент() от Google, на самом деле он исходит от прокси. - person PSCO; 07.12.2010
comment
@PSCO: я предлагаю исключить Меха из уравнения; сначала посмотрите, сможете ли вы заставить прокси работать только с LWP::UserAgent. - person ysth; 07.12.2010
comment
Я попробую и доложу. - person PSCO; 08.12.2010