Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Puppeter从XHR请求获取body/json响应_Javascript_Node.js_Puppeteer_Webautomation - Fatal编程技术网

Javascript 如何使用Puppeter从XHR请求获取body/json响应

Javascript 如何使用Puppeter从XHR请求获取body/json响应,javascript,node.js,puppeteer,webautomation,Javascript,Node.js,Puppeteer,Webautomation,我想从一个我正在使用Puppeter抓取的网站上获取JSON数据,但我不知道如何获取请求的主体。以下是我尝试过的: const puppeteer = require('puppeteer') const results = []; (async () => { const browser = await puppeteer.launch({ headless: false }) const page = await browser.newPage(

我想从一个我正在使用Puppeter抓取的网站上获取JSON数据,但我不知道如何获取请求的主体。以下是我尝试过的:

const puppeteer = require('puppeteer')
const results = [];
(async () => {
    const browser = await puppeteer.launch({
        headless: false
    })
    const page = await browser.newPage()
    await page.goto("https://capuk.org/i-want-help/courses/cap-money-course/introduction", {
        waitUntil: 'networkidle2'
    });

    await page.type('#search-form > input[type="text"]', 'bd14ew')  
    await page.click('#search-form > input[type="submit"]')

    await page.on('response', response => {    
        if (response.url() == "https://capuk.org/ajax_search/capmoneycourses"){
            console.log('XHR response received'); 
            console.log(response.json()); 
        } 
    }); 
})()

这只是返回一个promise挂起函数。任何帮助都会很好。

作为
响应。json
返回一个承诺,我们需要等待它

page.on('response',异步(response)=>{
如果(response.url()=)https://capuk.org/ajax_search/capmoneycourses"){
log(“收到XHR响应”);
log(wait response.json());
} 
}); 

等待页面。on
不是必需的--
页面。on
返回一个页面对象,用于链接更多
。on
调用,而不是承诺。对于那些孤立地看到这个线程的人来说,还有一个可以让你在一个异步链中检索一个响应体!这回答了你的问题吗?