为什么我不能从perl网站获取源代码



我想获取这个网站的源代码:https://www.splithistory.com/zsl/但它给出了错误,我尝试了WWW::机械化和LWP::简单,但我得到了错误,如:在J:perl_projectdemo_spli.pl第9行找不到网站。但当我试图从这个网站获取数据:https://www.splithistory.com/aapl/它工作正常.....

这是我的代码

#!/usr/bin/perl
#!perl -w
use DBI;
use strict;
use WWW::Mechanize; 
my $mech= WWW::Mechanize->new();
my $url= 'https://www.splithistory.com/zsl/';
$mech -> get($url);
my $script = $mech -> content;
open (MYFILE, '>sd.txt');   #open file in write mode
print MYFILE $script;       #copy source code of website in file
close(MYFILE);
输出:

Error GETing https://www.splithistory.com/zsl/: Not Found at J:perl_projectdemo_spli.pl line 9.

Error GETing https://www.splithistory.com/zsl/: Not Found at J:perl_projectdemo_spli.pl line 9.

这是因为该站点在HTTP头中返回"404 Not Found"。一个成功的响应应该有状态码200:

HTTP/1.1 404未找到日期:2016年8月8日星期一18:50:46 GMT服务器:Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/1.0.2h mod_jk/1.2.40 mod_perl/2.0.9 Perl/v5.8.9传输编码:分块内容类型:text/html;charset = iso - 8859 - 1 之前

WWW::Mechanize将崩溃,如果网站返回一个错误,这就是你所看到的。要获取数据,请使用:

eval { $mech->get($url); };
my $res = $mech->res();
$script = $res->content;

最新更新