第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在 puppeteer 中通過(guò)請(qǐng)求攔截來(lái)攔截響應(yīng)文本?

如何在 puppeteer 中通過(guò)請(qǐng)求攔截來(lái)攔截響應(yīng)文本?

慕工程0101907 2023-07-29 13:51:08
我知道如何獲取網(wǎng)址,但是我在頁(yè)面響應(yīng)文本上找不到太多內(nèi)容。        await page.on('request', request => {                     console.log('INTERCEPTED: ' + request.url());             request.continue();         });我將如何記錄頁(yè)面響應(yīng)文本?
查看完整描述

3 回答

?
慕容3067478

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊

   await page.setRequestInterception(true);

    await page.on('requestfinished', async (request) => {

        var response = await request.response();

        try {

            if (request.redirectChain().length === 0) {

               var responseBody = await response.buffer();

               console.log(responseBody.toString());

            }

        }catch (err) { console.log(err); }

    });

    await page.on('request', request => {

        request.continue();

    });

response.text() 字面上總是返回 null,這是 puppeteer 的另一個(gè)冗余功能,但是上面的方法可以很好地獲取頁(yè)面響應(yīng),該響應(yīng)顯然僅在請(qǐng)求完全加載時(shí)才出現(xiàn)。我永遠(yuǎn)無(wú)法理解木偶師的許多功能實(shí)際上似乎什么也沒(méi)做,哈哈


查看完整回答
反對(duì) 回復(fù) 2023-07-29
?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊

您必須setRequestInterception在綁定請(qǐng)求之前調(diào)用


await page.setRequestInterception(true);

page.on('response', (response) => {

    console.log('RESPONSE RECEIVED');

    console.log(response.status + ' ' + response.url);

});

page.on('request', request => {

    console.log('INTERCEPTED: ' + request.url());

    request.continue();

});


查看完整回答
反對(duì) 回復(fù) 2023-07-29
?
米琪卡哇伊

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊

response.text()?它可以像這樣使用:


page.on('response', async (response) => {? ??

? ? console.log(await response.text());

});

但問(wèn)題也可能出在腳本的終止上。您正在尋找的響應(yīng)可能不會(huì)在腳本結(jié)束之前到達(dá)。想象一下你有這樣的東西:


await page.setRequestInterception(true);? ? ??

page.on('request', request => {? ? ? ? ? ??

? ? request.continue();

});

page.on('response', response => {

? ? if (response.url().includes('scripts'))

? ? ? ? console.log(response.url());? ? ? ?

});


await page.type('#search', 'foo');

await page.click('#send-search');

await context.close();

await browser.close();

那么你就無(wú)法確定帶有“scripts”的 url 會(huì)在腳本結(jié)束之前到達(dá)。如果沒(méi)有,您將在控制臺(tái)中看不到任何內(nèi)容。


如果您想等待特定響應(yīng)并對(duì)其文本執(zhí)行某些操作,最好輸入:


const res = await page.waitForResponse(response => response.url().includes('scripts'));

console.log(await res.text());


查看完整回答
反對(duì) 回復(fù) 2023-07-29
  • 3 回答
  • 0 關(guān)注
  • 341 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)