2010-12-07 71 views
1

我一直在用这种方式太多的时间让我感到沮丧。我认为这应该很简单,但我显然有一些根本性的错误。我读过:Perl机械和代理的问题

我读过CPAN文档为: WWW-机械化/ lib中/ WWW /机械化/ FAQ.pod 的libwww-perl的-5.837/lib目录/ LWP/UserAgent.pm

以及我可以在Google上找到的每一样示例代码或文章。

这是我第一次在Stack Overflow上寻找帮助。感谢您的帮助提前。下面是代码:

#!/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 

我跑出来的想法在这里。这些代码在你那正常吗?它会产生相同的结果吗?它出什么问题了? >。 <

谢谢你的时间。

回答

1

是否说:

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

帮助?

该文档暗示您需要这样做以避免隐式调用LWP的env_proxy。

+0

谢谢你的回复ysth。我按照您的指示进行了修改,似乎对输出没有影响。奇怪的是,如果我用一个我知道不起来的域名替代www.google.com,我会得到相同的输出。因此,尽管$ mech-> uri()表明我获得了Google的内容(),但它确实来自代理。 – PSCO 2010-12-07 15:26:00

+0

@PSCO:我建议把Mech从等式中拿出来;看看您是否可以首先使用LWP :: UserAgent获取代理。 – ysth 2010-12-07 18:51:28

2

这个问题似乎是在服务器fetch4.me。尝试,例如,而不是

my $ proxy ='http://124.207.162.87:80';