NodeJS 如何在puppeteer中设置多个自定义HTTP头?

tjvv9vkg  于 2023-04-11  发布在  Node.js
关注(0)|答案(2)|浏览(560)

我尝试使用puppeteer登录https://kith.com/account/login?return_url=%2Faccount当我登录并使用音频解决验证码时,它将我检测为bot,因此我尝试更改请求头以查看是否有帮助,但无法找到任何关于如何更改它们的信息。
我找到了这个,但它只显示了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
            });
        });
rqmkfv5c

rqmkfv5c1#

您可以使用专用的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('...')
rqqzpn5f

rqqzpn5f2#

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
            });
        });

相关问题