Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
Node.js 木偶演员发现数据使用_Node.js_Puppeteer - Fatal编程技术网

Node.js 木偶演员发现数据使用

Node.js 木偶演员发现数据使用,node.js,puppeteer,Node.js,Puppeteer,有没有办法跟踪Puppeter中的总体数据使用情况?我正在运行一个使用不同代理的程序,并希望查看我使用了多少数据。在Puppeter文档中,有一个仅使用page.coverage方法计算JS和CSS大小的示例。我已经对其进行了修改,并添加了将结果保存到CSV文件的选项 但是,如果您想要更多的细节,如图像、媒体、文档、获取、字体、xhr;每次Puppeter运行并请求任何资源时,您都可以使用content-length响应头。我创建此代码是为了给您一个示例: const puppeteer =

有没有办法跟踪Puppeter中的总体数据使用情况?我正在运行一个使用不同代理的程序,并希望查看我使用了多少数据。

在Puppeter文档中,有一个仅使用
page.coverage
方法计算JS和CSS大小的示例。我已经对其进行了修改,并添加了将结果保存到CSV文件的选项

但是,如果您想要更多的细节,如图像、媒体、文档、获取、字体、xhr;每次Puppeter运行并请求任何资源时,您都可以使用
content-length
响应头。我创建此代码是为了给您一个示例:

const puppeteer = require('puppeteer')
const fs = require('fs-extra')

const filePath = 'datausage.csv'

;(async () => {

    const browser = await puppeteer.launch({headless: false})
    const [page] = await browser.pages()

    // Set Request Interception to detect images, fonts, media, and others
    page.setRequestInterception(true)

    let totalBytes = 0

    page.on('request', request => {
        request.continue()
    })

    page.on('response', response => {
        let headers = response.headers()
        if ( typeof headers['content-length'] !== 'undefined' ){
            var length = parseInt( headers['content-length'] )
            totalBytes+= length
        }
    })

    // Navigate to page
    await page.goto('https://www.google.com', {waitUntil: 'networkidle0', timeout: 0})

    if ( !await fs.pathExists(filePath) ) {
        await fs.writeFile(filePath, 'totalBytes\n')
    }

    await fs.appendFile(filePath, `${totalBytes}\n`)
    console.log(`Total data used: ${totalBytes/1048576} MBytes`)

    await browser.close()

})()

PS:我不知道这是否有效,但请自己尝试一下,以证明它与您的实际数据使用情况相同。如果您认为这是正确的,请选择它作为正确答案。

不幸的是,我认为不可能看到可能的重复:
const puppeteer = require('puppeteer')
const fs = require('fs-extra')

const filePath = 'datausage.csv'

;(async () => {

    const browser = await puppeteer.launch({headless: false})
    const [page] = await browser.pages()

    // Set Request Interception to detect images, fonts, media, and others
    page.setRequestInterception(true)

    let totalBytes = 0

    page.on('request', request => {
        request.continue()
    })

    page.on('response', response => {
        let headers = response.headers()
        if ( typeof headers['content-length'] !== 'undefined' ){
            var length = parseInt( headers['content-length'] )
            totalBytes+= length
        }
    })

    // Navigate to page
    await page.goto('https://www.google.com', {waitUntil: 'networkidle0', timeout: 0})

    if ( !await fs.pathExists(filePath) ) {
        await fs.writeFile(filePath, 'totalBytes\n')
    }

    await fs.appendFile(filePath, `${totalBytes}\n`)
    console.log(`Total data used: ${totalBytes/1048576} MBytes`)

    await browser.close()

})()