Html 使用Perl脚本检索HTTP URL

Html 使用Perl脚本检索HTTP URL,html,perl,https,Html,Perl,Https,我试图将整个网页保存为.html文件,然后解析该文件,找到一些标记并使用它们 我能够保存/解析http://,但无法保存/解析https://。我正在使用Perl 我正在使用以下代码保存HTTP,它可以正常工作,但不适用于HTTPS: use strict; use warnings; use LWP::Simple qw($ua get); use LWP::UserAgent; use LWP::Protocol::https; use HTTP::Cookies; sub main

我试图将整个网页保存为
.html
文件,然后解析该文件,找到一些标记并使用它们

我能够保存/解析
http://
,但无法保存/解析
https://
。我正在使用Perl

我正在使用以下代码保存HTTP,它可以正常工作,但不适用于HTTPS:

use strict; 
use warnings; 
use LWP::Simple qw($ua get);
use LWP::UserAgent;
use LWP::Protocol::https;
use HTTP::Cookies;

sub main
{
  my $ua = LWP::UserAgent->new();

  my $cookies = HTTP::Cookies->new(
    file => "cookies.txt",
    autosave => 1,
    );
 
  $ua->cookie_jar($cookies);
 
  $ua->agent("Google Chrome/30");
 

#$ua->ssl_opts( SSL_ca_file => 'cert.pfx' );

  $ua->proxy('http','http://proxy.com');
  my $response = $ua->get('http://google.com');

#$ua->credentials($response, "", "usrname", "password");
 
  unless($response->is_success) {
    print "Error: " . $response->status_line;
    }
 
         
    # Let's save the output.
  my $save = "save.html";
 
  unless(open SAVE, '>' . $save) {
    die "nCannot create save file '$save'n";
  }
 
    # Without this line, we may get a
    # 'wide characters in print' warning.
  binmode(SAVE, ":utf8");
 
  print SAVE $response->decoded_content;
 
  close SAVE;
 
  print "Saved ",
      length($response->decoded_content),
      " bytes of data to '$save'.";
}

main();
可以解析HTTPS页面吗?

您需要有用于HTTPS链接的

它为LWP提供SSL支持

用我自己的一个项目来咬我的屁股

您需要有用于https链接的

它为LWP提供SSL支持


用我自己的一个项目来咬我的屁股

始终值得检查您正在使用的模块的文档

您正在使用来自的模块。这包括。在那本食谱中,有这样一句话:

使用https方案的URL访问方式与使用https方案的URL访问方式完全相同 http方案,前提是已安装LWP的SSL接口模块 正确安装(请参阅libwww.perl中的README.SSL文件 有关详细信息,请参阅分发)。如果没有为安装SSL接口 如果要使用LWP,则您将得到“501协议方案‘https’不可用” 访问此类URL时支持的“错误”

档案上说:

从libwww perlv6.02开始,您需要安装LWP::Protocol::https 模块从其自己的独立发行版中删除,以支持 https://... LWP::UserAgent的URL


因此,您只需安装。

始终值得检查您正在使用的模块的文档

您正在使用来自的模块。这包括。在那本食谱中,有这样一句话:

使用https方案的URL访问方式与使用https方案的URL访问方式完全相同 http方案,前提是已安装LWP的SSL接口模块 正确安装(请参阅libwww.perl中的README.SSL文件 有关详细信息,请参阅分发)。如果没有为安装SSL接口 如果要使用LWP,则您将得到“501协议方案‘https’不可用” 访问此类URL时支持的“错误”

档案上说:

从libwww perlv6.02开始,您需要安装LWP::Protocol::https 模块从其自己的独立发行版中删除,以支持 https://... LWP::UserAgent的URL


因此,您只需安装。

运行这一行程序时有任何错误吗<代码>perl-MLWP::UserAgent-e'$ua=LWP::UserAgent->new;打印$ua->get(“https://github.com“”->解码内容();'运行这一行程序时有错误吗<代码>perl-MLWP::UserAgent-e'$ua=LWP::UserAgent->new;打印$ua->get(“https://github.com“”->解码内容();'实际上在的较新版本中,您需要确保已安装(安装它将强制安装SSL模块)酷,我不知道。实际上在的较新版本中,您需要确保已安装(安装它将强制安装SSL模块)酷,我不知道。