2010-12-07 70 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';