Загрузите все PDF -файлы с драматургом, не работаетJavascript

Форум по Javascript
Ответить
Anonymous
 Загрузите все PDF -файлы с драматургом, не работает

Сообщение Anonymous »

Вот минимальный код, работающий в Mac, < /p>

Код: Выделить всё

import { chromium, Download } from 'playwright';
import fs from 'fs';
import path from 'path';
import { URL } from 'url';

async function downloadPDFsFromPage(pageUrl: string, downloadDir: string = 'pdf_downloads') {
// Ensure download directory exists
if (!fs.existsSync(downloadDir)) {
fs.mkdirSync(downloadDir, { recursive: true });
}

console.log('downloadPDFsFromPage',pageUrl);
const browser = await chromium.launch({
headless: false, // Set to true for headless mode
executablePath: "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
args: ["--no-sandbox", "--disable-setuid-sandbox"],
});

console.log('browser',browser);

const context = await browser.newContext({
acceptDownloads: true
});
const page = await context.newPage();
await page.goto(pageUrl, { waitUntil: 'domcontentloaded' });

// Get all PDF links (anchors ending with .pdf)
const pdfLinks: string[] = await page.$$eval(
"a[href$='.pdf']",
anchors => anchors.map(a => (a as HTMLAnchorElement).href)
);

console.log(`Found ${pdfLinks.length} PDF(s).`);

for (const rawLink of pdfLinks) {
const pdfUrl = new URL(rawLink, pageUrl).toString();
// Open link in a new tab to trigger download
const [download] = await Promise.all([
page.waitForEvent('download'),
page.click(`a[href='${pdfUrl}']`).catch(async () => {
const pdfPage = await context.newPage();
await pdfPage.goto(pdfUrl);
await pdfPage.close();
})
]);
const urlObj = new URL(pdfUrl);
const filename = path.basename(urlObj.pathname);
const filepath = path.join(downloadDir, filename);
await (download as Download).saveAs(filepath);
console.log(`Downloaded: ${filepath}`);
}

await browser.close();
}

await downloadPDFsFromPage( url , '/Users/liv/Documents/data');
Ожидаемый результат - все PDF будет загружен, но в действительности браузер открывает только первый PDF, но не загружает его, остальные страницы PDF не открываются, а браузер просто закрыт.
>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»