代码之家  ›  专栏  ›  技术社区  ›  adhanlon

如何使用Perl通过HTTPS下载文件?

  •  1
  • adhanlon  · 技术社区  · 15 年前

    我想通过https下载大约200个不同的HTML文件,从每个文件中提取页面的标题,并将标题放入文本文档中。

    如何使用Perl下载使用HTTPS的文件?我搜索了谷歌,但没有找到很多有用的信息或例子。

    2 回复  |  直到 8 年前
        1
  •  3
  •   simon04 Jonathan A. Marshall    11 年前

    查找下载部分信息的好地方是 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中有一个站点列表(每行一个URL),那么可以将其与 $ cat sites.list | perl titlegrab.pl 查看所有标题。

    或…重定向到某些输出文件,例如 $ cat sites.list | perl titlegrab.pl > results.txt

        2
  •  10
  •   Community CDub    8 年前

    看一看 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 .