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模块)酷,我不知道。