【问题标题】:Get redirected url in perl在 perl 中获取重定向的 url
【发布时间】:2013-06-29 07:05:17
【问题描述】:

我想获取最后一个重定向 URL。

喜欢

url_1:http://on.fb.me/4VGeu url_2 : https://www.facebook.com/

我想在 perl 中通过 url_1 获取 url_2。 以前的来源如下。

sub get_redirect_location
{
    my ($url) = @_;
    my $ua = LWP::UserAgent->new;

    $ua->proxy('http', 'SAMPLE_PROXY');
    my $req = new HTTP::Request(GET => $url);
    my $res = $ua->request($req);

    return $res->headers_as_string;
}

提前致谢。

【问题讨论】:

    标签: perl url get


    【解决方案1】:

    您可以使用

    找到导致响应的请求
    $response->request()
    

    您可以使用获取链中的先前响应

    $response->previous()
    

    大家一起:

    while ($response) {
       say $response->request()->uri();
       $response = $response->previous();
    }
    

    【讨论】:

    • 当有超过 2 个“重定向站点”时这仍然有效吗?
    • @Ibrahim Apachi,是的,循环会显示所有请求的 URL。
    【解决方案2】:

    你可以看看 WWW::Mechanize。我以前用它来做这样的事情。 http://search.cpan.org/~jesse/WWW-Mechanize-1.72/lib/WWW/Mechanize.pm#$mech->redirect_ok()

    您可能还会发现这篇文章很有帮助:

    Perl WWW::Mechanize (or LWP) get redirect url

    【讨论】:

      猜你喜欢
      • 2012-06-10
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 2013-09-07
      • 2022-01-09
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多