从网站上获取数据时,我在与伪造者斗争。几个星期前,它与Stealth Plugin一起工作正常。现在,当我手动打开Chromium并访问该网站时,一切正常。但是,自动化不再起作用。我知道它已经被指纹识别,但是我不知道如何摆脱它。我发现一些话题说该页面需要使用被拦截的请求来设置。
因此,我将确切的请求标头从手动过程的开发工具复制到我的代码中,如下所示:
page.on('request', (interceptedRequest) => {
const headers = interceptedRequest.headers();
headers['sec-fetch-mode'] = 'navigate';
headers['user-agent'] =
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.0 Safari/537.36';
headers['accept-language'] = 'en-GB,en-US;q=0.9,en;q=0.8';
headers['accept'] =
'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9';
headers['upgrade-insecure-requests'] = 1;
headers[':method'] = 'GET';
headers[':scheme'] = 'https';
headers['accept-encoding'] = 'gzip, deflate, br';
headers['cache-control'] = 'max-age=0';
headers['sec-fetch-dest'] = 'document';
headers['sec-fetch-site'] = 'none';
headers['sec-fetch-user'] = '?1';
console.log(headers);
interceptedRequest.continue({ headers });
});
结果保持不变。响应标头不断返回错误429。我不知道下一步该怎么做。真是头疼得厉害。
请帮帮我! 谢谢。