【发布时间】:2016-06-21 18:18:20
【问题描述】:
我正在尝试使用 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,所以它们应该在那里。我想知道问题是否可能是服务器上的某种安全性或权限(阻止它访问外部网站),但我什至不知道从哪里开始。有任何想法吗?
【问题讨论】:
-
你试过看看
$!说了什么吗? -
$!说“没有这样的文件或目录”,所以它可能被阻止访问外部 URL。现在我需要弄清楚如何解锁它。
-
$!仅在进行返回 false 的系统调用后才有意义。你没有进行系统调用。同样,您需要使用 LWP::UserAgent 来查看错误消息。 -
可能的可能性(无特定顺序): *) 被防火墙阻止。 *) 证书问题。 *) 需要代理。 *) SELinux 或其他强化系统阻止传出连接。
-
@Compysaurus 太棒了!请写下答案,以便将来的访问者更容易看到您的所作所为。