Перехватить загрузку документов с помощью Puppeteer и извлечь данные CSV - PullRequest
0 голосов
/ 18 октября 2019

Я хотел бы загрузить файл .csv из браузера, перехватить его и извлечь данные, чтобы преобразовать его в объект JSON. В большинстве ответов говорится, что нужно использовать request.buffer (), однако моя ситуация уникальна, так как всегда говорится, что буфер пуст, но файл загружается.

Я попытался вывести запросы .buffer ()

downloadPage.on('request', request => {
        console.log(request.isNavigationRequest());
        console.log(nextRequest);
        if (request.isNavigationRequest() && !nextRequest) {
            return request.abort();
        }
        initialRequest = false;

        request.continue();
    });

    downloadPage.on('response', async (response) => {
        console.log(response.buffer());
        file_data = JSON.parse(response.buffer());
    })


    await Promise.all([
        downloadPage.goto('https://clients.messagelabs.com/Tools/Track-And-Trace/DownloadCsv.ashx?sessionid=' + json_data.request.SessionId).catch(err => console.log(err)),
        page.waitForNavigation()
    ])

Поскольку я нахожусь в корпоративной сети, он не позволяет загружать мои изображения, но ...

Когда я перехожу по ссылке выше на downloadPage.goto (... ) он автоматически начинает загрузку файла .csv. Чем страница закрывается. Я думаю, что закрытие страницы очищает буфер, однако я не могу перехватить ответ, чтобы получить данные файла, прежде чем это произойдет. Любые идеи приветствуются.

Пожалуйста, не связывайте меня с другим github, который говорит мне использовать request.buffer (), так как я пробовал много вариантов.

Ошибка: ошибка протокола (сеть.getResponseBody): не найдены данные для ресурса с указанным идентификатором

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...