如何通过单击html中的按钮来传递重定向页面

时间:2017-08-18 02:37:16

标签: html perl httprequest url-redirection lwp-useragent

我创建了一个perl脚本来从网站获取一些信息。网页不会重定向自己,我需要点击继续自己重定向它。我可以使用perl吗?

#!/usr/bin/perl -w

use feature ':5.10';
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Request::Common qw(POST);
use HTTP::Cookies;
use CACertOrg::CA;
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;


my $outfile="out.html";
my $URL="http://www.example.com;
my $UA = LWP::UserAgent->new();
$UA->ssl_opts(
    SSL_verify_mode   => 'SSL_VERIFY_NONE',
    verify_hostnames => 0,
    SSL_ca_file      => CACertOrg::CA::SSL_ca_file()
);
$UA->cookie_jar(HTTP::Cookies->new(file => 'cookie_jar', autosave =>1));


my $req =HTTP::Request::Common::POST("$URL",
   Content_type=>'form-data',
   Content =>[
         'username'=>'user',
         'password'=>'pass',
         'vhost'=>'standard'
  ]
);
$req->header('Cookie' =>q(TIN=287000; LastMRH_Session=439960f5; MRHSession=78c9c47291c1fcedae166121439960f5));



my $resp=$UA->request($req);
open(OUTFILE, ">$outfile");
print OUTFILE $resp->decoded_content;
close(OUTFILE);

out.html i打印出来就像这样

enter image description here

当我打开html文件时,它直接重定向到我想要的页面但不在代码中。无需在代码中执行任何操作即可到达wwww.example.com

已添加8/18

我尝试使用此命令,然后在我的浏览器中打开www.example.com

 my $ret = system( 'out.html' );

但我想要的是获取www.example.com的html而不是打开网站。

1 个答案:

答案 0 :(得分:0)

最佳解决方案是设置您的位置标头。如果是将输出直接写入响应(而不是输出HTML文件)的选项,则可以在HTML内容之前编写标题。

use HTTP::Headers;
my $headers = HTTP::Headers->new;
$headers->header('Content-Type' => 'text/html');
$headers->header('Location' => 'newAddr.html');
$headers->header('Cookie' => q(TIN=287000; LastMRH_Session=439960f5; MRHSession=78c9c47291c1fcedae166121439960f5));
print $headers->as_string();

如果需要,您还可以将HTTP状态代码设置为302以进行临时重定向。

或者,您可以使用javascript在页面加载后自动重定向,方法是将其添加到HTML内容中。

<script type="text/javacript">
    window.location = "newAddr.html";
</script>