【问题标题】:Perl getprint() returns nothingPerl getprint() 不返回任何内容
【发布时间】:2016-02-13 23:22:29
【问题描述】:

抱歉,我是 Perl 的新手,但是,这对我来说真的很奇怪。

重点是:我有一个包含此内容的 perl 脚本:

#!/usr/bin/perl

print "Content-type:text/html\n\n";
use LWP::Simple;

getprint("http://DOMAIN/");

我将它托管在某个域上。关键是它确实适用于我输入的每个域,除了我的域和托管公司的域(包括他们的服务域,如管理工具等)......

我真的很困惑,不知道我做错了什么

【问题讨论】:

  • 同一个 URL 的 curlwget 是否能给您任何帮助?
  • 它似乎确实适用于 wget
  • 你有代理吗?如果是这样,为 LWP 的对象设置代理。您还可以使用成功或错误等对象检查 HTTP :: 状态。链接:search.cpan.org/~ether/libwww-perl-6.15/lib/LWP/Simple.pm

标签: perl web hosting server-side


【解决方案1】:

您应该首先修改您的脚本,使用某种“try-catch”或“die(...) if ...”结构,如果您的脚本在更多域上工作,则进一步修改,但不是你的或某些特定的域,这意味着他们不喜欢爬虫:-)。有很多方法可以解决一些问题,尝试识别你的脚本抛出 LWP 就像一些“浏览器”(你必须在 'www' 中有很多例子),第二个想法是 - 首先使用一些普通的 PC 作为客户端,导致它有可能您的服务器 ip 可能会被禁止一些黑名单,但这不太可能。


使用 LWP; 我的 $userAgnt = LWP::UserAgent->new;

打印“内容类型:文本/html\n\n”;

die "no success :-(" 除非定义 $userAgnt->get("DOMAIN");

$userAgnt->getprint("DOMAIN/");

if (is_success($userAgnt->getprint("DOMAIN"))) { ... }

干杯。

【讨论】:

    猜你喜欢
    • 2013-10-07
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 2020-04-27
    • 2019-04-06
    • 2012-02-15
    • 2020-09-07
    • 2021-11-22
    相关资源
    最近更新 更多