【问题标题】:How do I set multiple custom HTTP headers in puppeteer?如何在 puppeteer 中设置多个自定义 HTTP 标头?
【发布时间】:2020-07-23 19:37:12
【问题描述】:

我正在尝试使用 puppeteer 在https://kith.com/account/login?return_url=%2Faccount 登录 当我登录并使用音频解决验证码时,它会将我检测为机器人,因此我正在尝试更改请求标头以查看是否有帮助,但找不到有关如何更改它们的任何信息。

我找到了这个,但它只显示 1 个标题:

await page.setRequestInterception(true)

        page.on('request', (request) => {
            const headers = request.headers();
            headers['X-Just-Must-Be-Request-In-All-Requests'] = '1';
            request.continue({
                headers
            });
        });

【问题讨论】:

    标签: node.js puppeteer request-headers


    【解决方案1】:

    您也可以使用专用 puppeteer 方法设置多个 HTTP 标头:page.setExtraHTTPHeaders

    例如:

    await page.setExtraHTTPHeaders({
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36',
            'upgrade-insecure-requests': '1',
            'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
            'accept-encoding': 'gzip, deflate, br',
            'accept-language': 'en-US,en;q=0.9,en;q=0.8'
        })
    await page.goto('...')
    

    【讨论】:

      【解决方案2】:

      header 是数组,你可以根据需要添加多个

       page.on('request', (request) => {
                  const headers = request.headers();
                  headers['X-Just-Must-Be-Request-In-All-Requests'] = '1';
                  headers['foo'] = 'bar';
                  headers['foo2'] = 'bar2';
                  
                  request.continue({
                      headers
                  });
              });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-02
        • 1970-01-01
        • 1970-01-01
        • 2020-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多