Как использовать Google Docs Viewer с Puppeter?

Я хочу просматривать документы с помощью Google Docs Viewer через Puppeter, который работает в Node.js. URL хорошо работает в браузере:
https://docs.google.com/viewer?url=https%3A%2F%2Fdocs.npmjs.com%2Fimages%2Fnpm.svg&embedded=true

Но выдает ошибку в кукловоде:

(async () => {          
        const browser = await puppeteer.launch();
        const page = await browser.newPage();           
        page.on('response', res => {
            res.text().then(text => {
                console.log('response:', {
                    url: res.url(),
                    status: res.status(),
                    res_headers: res.headers(),
                    req_headers: res.request().headers(),
                    text: text
                });
            });
        });

        await page.setBypassCSP(true);
        await page.goto(url, {waitUntil: 'networkidle0'});
        let content = await page.content();            
        await browser.close();

        return content;
    })();

Печатные события:

URL: https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en_US.f5JujS1eFMY.O/m=googleapis_proxy/rt=j/sv=1/d=1/ed=1/am=QQE/rs=AGLTcCNDI1_ftdVIpg6jNiygedEKTreQ2A/cb=gapi.loaded_0
статус: 200

консоль: не удалось загрузить ресурс: сервер ответил со статусом 401 ()
URL: https://content.googleapis.com/drive/v2internal/about?fields=importFormats,kind&key=AIzaSyDVQw45DwoYh632gvsP5vPDqEKvb-Ywnb8
text: {"error": {"errors": [{"domain": "global", "reason": "required", "message": "Требуется вход в систему","locationType": "header","location": "Авторизация"}],"код": 401,"сообщение": "Требуется вход в систему"}}

URL: ' https://content.googleapis.com/drive/v2internal/viewerimpressions?key=AIzaSyDVQw45DwoYh632gvsP5vPDqEKvb-Ywnb8&alt=json'
статус: 204

консоль: "Не удалось загрузить ресурс: сервер ответил со статусом 403 ()"
url: ' https://content.googleapis.com/drive/v2internal/apps?fields=items(authorized,chromeExtensionIds,createInFolderTemplate,createUrl,icons(iconUrl,size,category),id,installed,kind,longDescription,name,objectType,openUrlTemplate,origins,primaryFileExtensions,primaryMimeTypes,productId,productUrl,rankingInfo,removable,requiresAuthorizationBeforeOpenWith,secondaryFileExtensions,secondaryMimeTypes,shortDescription,supportsCreate,supportsImport,supportsMultiOpen,supportsTeamDrives,type,useByDefault),kind&languageCode=en-US&key=AIzaSyDVQw45DwoYh632gvsP5vPDqEKvb-Ywnb8",
текст: {"ошибка": {"ошибки": [{"домен": "глобальный", "причина": "запрещено", "сообщение": "запрещено"}],"код": 403,"сообщение": "Запрещенный"}},

Когда я сравниваю файлы cookie и заголовки между puppeter и браузером, заголовки "origin", "x-origin", "x-referrer" совпадают, но "x-chrome-connected" и "x-client-date" не хватает.
Файл cookie "NID" существует.

1 ответ

Посмотрите внимательно на ответы Google:

{"errors": [{"domain": "global", "reason": "required", "message": "Login Required"}]}

{"errors": [{"domain": "global", "reason": "запрещено", "сообщение": "запрещено"}]}

Кажется, что кукловод Chromium должен войти в систему с Google, чтобы использовать функцию просмотра PDF.

Другие вопросы по тегам