我正在尝试抓取具有 reCaptcha v2 的网页,本地 reCaptcha 的分辨率(Windows 10 和 Chrome PC)正确完成, 但是当我在 CentOS 7 服务器上在生产中运行它时,当我单击 reCaptcha 框时,我收到消息:
您的计算机或网络可能正在发送自动查询为了保护我们的用户,我们无法处理 您现在的请求欲了解更多详细信息 vigit pur_heWppge。
我还在使用 Ubuntu 20 的 GCP 中创建了一个计算实例,同样的事情发生了(甚至使用 const Xvfb = require('xvfb') for headless: false)。
还有哪些其他配置可以应用于 puppeteer?
browser = await puppeteer.launch({
args: ["--no-sandbox", "--disable-setuid-sandbox",
"--disable-blinkfeatures=AutomationControlled",
"--no-first-run", "--no-proxy-server"],
//headless: false
headless: 'new'
});
let page = await browser.newPage();
await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0');
const customHeaders = {
'Accept-Language': 'es,es-ES;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
'Sec-Ch-Ua': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
'Sec-Ch-UA-Platform': '"Windows"',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0'
};
await page.setExtraHTTPHeaders(customHeaders);
await page.goto(url);
如果 Centos 服务器部署在数据中心,您可以尝试使用住宅代理。许多网站屏蔽数据中心的 IP。