JavaScript获取NHK的附件文件

 

// 全自动下载PDF,使用class="label"的span文字作为文件名
(async function() {
    const table = document.querySelector("table.broadcastList__contents");
    if (!table) return;
    
    const pdfLinks = table.querySelectorAll('a[href*=".pdf"]');
    
    for (let i = 0; i < pdfLinks.length; i++) {
        const link = pdfLinks[i];
        const row = link.closest('tr');
        let fileName = `document${i + 1}`;
        
        if (row) {
            const labelSpan = row.querySelector('span.label');
            if (labelSpan) {
                fileName = labelSpan.textContent.trim()
                    .replace(/[<>:"/\\|?*]/g, '')
                    .substring(0, 100);
            }
        }
        
        const filename = `${fileName}.pdf`;
        
        try {
            const response = await fetch(link.href);
            const blob = await response.blob();
            const url = window.URL.createObjectURL(blob);
            const a = document.createElement('a');
            a.href = url;
            a.download = filename;
            a.click();
            window.URL.revokeObjectURL(url);
            
            // 延迟1秒
            await new Promise(resolve => setTimeout(resolve, 1000));
            
        } catch (error) {
            console.error('Download failed:', error);
        }
    }
})();

 

posted @ 2025-09-23 12:07  ryueifu  阅读(15)  评论(0)    收藏  举报