2012-08-13 50 views
4

我在使用WWW憑證代理程序時遇到問題:通過機械化訪問和網站刮取需要NTLM身份驗證的站點。我在線閱讀證書代理需要4個參數:基礎,領域,用戶名和密碼。我不確定要使用什麼基地或領域,所以這些例子會非常有幫助。當我運行我的代碼時,我得到了一個未經授權的與$ url get一致的錯誤。任何幫助,將不勝感激使用WWW ::機械化憑證

#!/usr/bin/perl 
use strict; 
use warnings; 


use WWW::Mechanize; 

use HTML::TokeParser; 


my $url= shift || "mywebsite.com"; 

my $agent = WWW::Mechanize->new(autocheck => 1); 

$agent->credentials ("proxy:port", '', 'domain/username', 'password'); 

$agent->proxy(['https', 'http', 'ftp'], 'proxy:port'); 

$agent->get($url); 

print $agent->content(); 
+3

此[鏈接](http://www.perlmonks.org/?node_id=765651)有一個例子,它還提到WWW :: Mechanize必須是v1.5.2或更高版本才能使用憑據 – David 2012-08-13 21:45:17

回答

1

它有助於閱讀您正在使用的軟件的文檔。 WWW :: Mechanize覆蓋credentials method,以便它也只接受用戶名和密碼。這些最終傳遞給Authen :: NTLM。

+0

好的,謝謝對於答案,所以憑證方法應該只有兩個參數?用戶名和密碼? – user1596292 2012-08-14 13:16:20

+0

是的,WWW :: Mechanize的憑證方法只是說... http://search.cpan.org/~ether/WWW-Mechanize-1.73/lib/WWW/Mechanize.pm#$mech->credentials(_$用戶名,_ $ password_) – hpavc 2014-02-09 18:42:40