我想通过HTTPS下载大约200个不同的HTML文件,并从每个文件中提取页面标题,并将标题放入文本文档中。
如何使用Perl使用HTTPS下载文件?我搜索过谷歌,但我找不到很多有用的信息或例子。
答案 0 :(得分:10)
查看HTML::HeadParser分发HTML::Parser的一部分。它将解析HTML标头,以便您提取<title>
标记内容。
对于获取HTML内容,有大量可用的CPAN模块。其中一个模块是LWP::Curl,属于libwww-perl系列。在此网站上搜索many discussions of fetching HTML以了解详情。
要通过HTTPS下载,请查看libwww-perl下的文档。目前在libwww-perl下使用SSL的“标准”方式是Crypt::SSLeay。
答案 1 :(得分:3)
查找下载部分信息的好地方是libwww-perl cookbook。
这是一些基本的示例代码。它不一定是最好的方法,但假设你有LWP模块(可从CPAN获得),它应该是可行的。
#!/usr/bin/perl
use warnings;
use strict;
use LWP::Simple;
while (my $site = <STDIN>)
{
my $doc = get $site;
if (defined($doc))
{
if ( $doc =~ m/<title>(.*)<\/title>/i )
{
print "$1\n";
}
}
}
您可能希望添加更多铃声和口哨声,用于取消文本处理,处理错误条件,与多个线程并行执行请求,伪造用户代理作为Mozilla等等:)
如果您将其保存为titlegrab.pl,并且您在sites.list中有一个网站列表(每行一个网址),则可以将其与$ cat sites.list | perl titlegrab.pl
一起使用以查看所有标题。
或..重定向到某个输出文件,例如$ cat sites.list | perl titlegrab.pl > results.txt