当 运行 来自远程服务器时,Perl LWP::Simple 不会 "get" 网页
Perl LWP::Simple won't "get" a webpage when running from remote server
我正在尝试使用 Perl 抓取出版物列表,如下所示:
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,所以它们应该在那里。我想知道问题是否可能是服务器上的某种安全或权限(阻止它访问外部网站),但我什至不知道从哪里开始。有任何想法吗?
原来我没有安装 LWP::Protocol::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
一切都很好。
我正在尝试使用 Perl 抓取出版物列表,如下所示:
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,所以它们应该在那里。我想知道问题是否可能是服务器上的某种安全或权限(阻止它访问外部网站),但我什至不知道从哪里开始。有任何想法吗?
原来我没有安装 LWP::Protocol::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
一切都很好。