2016-06-21 42 views
1

我試圖使用Perl刮出版物名單如下運行時不會「獲得」網頁:Perl的LWP ::簡單從遠程服務器

use XML::XPath; 
use XML::XPath::XMLParser; 
use LWP::Simple; 

my $url = "https://connects.catalyst.harvard.edu/Profiles/profile/xxxxxxx/xxxxxx.rdf"; 

my $content = get($url); 
die "Couldn't get publications!" unless defined $content; 

當我在我的本地運行(Windows 7)的機器工作正常。當我嘗試在我們託管一些網站的Linux服務器上運行它時,它會死亡。我使用cpan安裝了XML和LWP,因此應該在那裏。我想知道如果問題可能是服務器上的某種安全或權限(使其不能訪問外部網站),但我甚至不知道從哪裏開始。有任何想法嗎? 。

+0

你有沒有試過看看'$!'說的是什麼? – squiguy

+3

發生錯誤時,'get'的文檔建議使用'LWP :: UserAgent'。 – toolic

+0

$!說:「沒有這樣的文件或目錄」,所以它可能被阻止訪問外部URL。現在我需要弄清楚如何解鎖它。 – Compysaurus

回答

4

原來我沒有LWP ::協議:: HTTPS」安裝我發現了這一點,通過切換

LWP::Simple 

LWP::UserAgent 

並添加以下內容:

my $ua = LWP::UserAgent->new; 
my $resp = $ua->get('https://connects.catalyst.harvard.edu/Profiles/profile/xxxxxx/xxxxxxx.rdf'); 
print $resp; 

然後它返回一個錯誤,告訴我它沒有協議來訪問沒有LWP :: Protocol :: https的https,所以我安裝了它

cpan LWP::Protocol::https 

和一切都很好。