RobotRules 和UserAgent来下载文件

以下是一个使用WWW::RobotRules和LWP::UserAgent来下载文件的Perl程序:

复制代码
#!/usr/bin/perl
​
use strict;
use warnings;
use WWW::RobotRules;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
​
my $url = 'http://www.people.com.cn/';
my $agent = LWP::UserAgent->new;
​
# 创建一个RobotRules对象,用于检查网站的下载规则
my $robot_rules = WWW::RobotRules->new($url);
​
# 检查网站是否允许下载音频文件
if ($robot_rules->allowed('audio/*')) {
    print "网站允许下载音频文件。\n";
​
    # 使用LWP::UserAgent下载音频文件
    my $req = HTTP::Request->new(GET => $url);
    my $res = $agent->request($req);
​
    # 检查下载是否成功
    if ($res->is_success) {
        my $content = $res->content;
        my $filename = 'people_com_cn_audio.mp3'; # 默认保存文件名
​
        # 根据Content-Disposition头部信息获取实际文件名
        if ($res->header('Content-Disposition')) {
            my ($name) = $res->header('Content-Disposition') =~ /filename="([^"]+)/;
            $filename = $name if $name;
        }
​
        # 保存下载的音频文件
        open(my $output, '>', $filename) or die "Cannot open file: $!";
        print $output $content;
        close($output);
​
        print "音频文件下载完成,保存为 $filename。\n";
    } else {
        print "下载失败:" . $res->status_line . "\n";
    }
} else {
    print "网站不允许下载音频文件。\n";
}

这个程序首先检查是否允许下载音频文件。如果允许,则使用LWP::UserAgent下载音频文件并将其保存到本地。注意,这个程序仅用于示例目的,你可能需要根据实际情况进行调整。

相关推荐
mCell18 分钟前
GitHub Actions 玩法大赏:一台远程主机的七种活法
linux·github·agent
盐焗鹌鹑蛋31 分钟前
【Linux】动静态库的制作与使用
linux
wuyk55539 分钟前
Python 第三章:列表 List
服务器·开发语言·python
刘立军1 小时前
RESTful 与契约优先:规范接口定义,统一接口设计范式
后端·架构·ai编程
Evand J1 小时前
【MATLAB例程,车联网7】CACC网联车辆协同控制:ACC对比、V2X时延丢包与队列稳定性,附例程下载链接
开发语言·matlab·车联网
艾伦_耶格宇1 小时前
【ELK】-4 logstash的搭建及操作
linux·运维·ubuntu·elk
JavaGuide1 小时前
GitHub 4.5 万+ Star!GitNexus 把代码仓库变成了 Claude Code / Codex 能查询的知识图谱
后端·ai编程
要努力点2 小时前
Python入门第六课
开发语言·python
子兮曰2 小时前
DeepSeek Harness 架构深潜:一个把 Agent 运行时做成纯插件树的开源 Harness
前端·后端·deepseek
mifengxing2 小时前
文件逻辑结构、物理结构与磁盘空闲存储空间管理
大数据·linux·运维·操作系统·计算机408