Fixed too strong captcha detection

This commit is contained in:
2026-02-14 22:49:05 +01:00
parent 8725f4ddde
commit ddb712ba4a
4 changed files with 31 additions and 33 deletions
+6 -17
View File
@@ -1,19 +1,8 @@
DATE | TIME | WEBSITE | REASON DATE | TIME | WEBSITE | REASON
---------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------
14/02/2026 | 20:31:58 | Site_3 (https://kulalaland.com/) | No email field detected 14/02/2026 | 22:41:09 | Dutch News Test (https://www.dut | CAPTCHA present: reCAPTCHA
14/02/2026 | 20:42:16 | Dutch News Test (https://www.dut | CAPTCHA present: reCAPTCHA 14/02/2026 | 22:41:09 | Kulala Land (https://kulalaland. | No email field detected
14/02/2026 | 20:43:17 | Site_1 (https://www.dutchnews.nl | CAPTCHA present: reCAPTCHA 14/02/2026 | 22:41:09 | sneakywholefoods (https://www.sn | Not a newsletter signup form
14/02/2026 | 20:43:17 | Site_3 (https://kulalaland.com/) | No email field detected 14/02/2026 | 22:46:37 | Gate6 (https://gate6.vn/) | Navigating frame was detached
14/02/2026 | 20:45:19 | Site_1 (https://www.dutchnews.nl | CAPTCHA present: reCAPTCHA 14/02/2026 | 22:46:37 | Kulala Land (https://kulalaland. | Navigating frame was detached
14/02/2026 | 20:45:19 | Site_2 (https://immaculatevegan. | Not a newsletter signup form 14/02/2026 | 22:46:37 | sneakywholefoods (https://www.sn | Connection closed.
14/02/2026 | 20:45:19 | Site_3 (https://kulalaland.com/) | No email field detected
14/02/2026 | 20:46:06 | Site_1 (https://www.dutchnews.nl | CAPTCHA present: reCAPTCHA
14/02/2026 | 20:46:06 | Site_3 (https://kulalaland.com/) | No email field detected
14/02/2026 | 21:26:47 | Dutch News Test (https://www.dut | Navigating frame was detached
14/02/2026 | 21:26:47 | Immaculate Vegan (https://immacu | Connection closed.
14/02/2026 | 21:26:47 | Gate6 (https://gate6.vn/) | Connection closed.
14/02/2026 | 21:26:47 | Kulala Land (https://kulalaland. | Connection closed.
14/02/2026 | 21:26:47 | sneakywholefoods (https://www.sn | Connection closed.
14/02/2026 | 21:27:40 | Dutch News Test (https://www.dut | CAPTCHA present: reCAPTCHA
14/02/2026 | 21:27:40 | Kulala Land (https://kulalaland. | No email field detected
14/02/2026 | 21:27:40 | sneakywholefoods (https://www.sn | Not a newsletter signup form
-6
View File
@@ -1,6 +0,0 @@
# Newsletter signup sites
# Lines starting with # are ignored
https://www.dutchnews.nl/dutchnews-newsletter-signup/
https://immaculatevegan.com/blogs/magazine
https://kulalaland.com/
+17 -6
View File
@@ -31,12 +31,23 @@ async function detectCaptcha(page) {
for (const selector of config.selectors) { for (const selector of config.selectors) {
const elements = document.querySelectorAll(selector); const elements = document.querySelectorAll(selector);
if (elements.length > 0) { if (elements.length > 0) {
results.push({ for (const el of elements) {
type: type, const style = window.getComputedStyle(el);
name: config.name, const rect = el.getBoundingClientRect();
selector: selector, const isVisible = style.display !== 'none' &&
count: elements.length style.visibility !== 'hidden' &&
}); style.opacity !== '0' &&
rect.width > 0 &&
rect.height > 0;
results.push({
type: type,
name: config.name,
selector: selector,
count: elements.length,
isVisible: isVisible
});
}
break; break;
} }
} }
+8 -4
View File
@@ -37,7 +37,8 @@ async function processSite(browser, site, globalCreds, browserConfig, keepOpen =
if (captchaInfo.length > 0) { if (captchaInfo.length > 0) {
console.log(`\n CAPTCHA DETECTED:`); console.log(`\n CAPTCHA DETECTED:`);
for (const captcha of captchaInfo) { for (const captcha of captchaInfo) {
console.log(` - ${captcha.name}`); const visibility = captcha.isVisible ? '(visible)' : '(hidden)';
console.log(` - ${captcha.name} ${visibility}`);
} }
if (captchaInfo.some(c => c.type === 'mathCaptcha')) { if (captchaInfo.some(c => c.type === 'mathCaptcha')) {
@@ -77,11 +78,14 @@ async function processSite(browser, site, globalCreds, browserConfig, keepOpen =
} }
} }
if (captchaInfo.some(c => c.type === 'recaptcha' || c.type === 'hcaptcha')) { const visibleRecaptcha = captchaInfo.filter(c => (c.type === 'recaptcha' || c.type === 'hcaptcha') && c.isVisible);
if (visibleRecaptcha.length > 0) {
siteFailed = true; siteFailed = true;
failureReason = `CAPTCHA present: ${captchaInfo.map(c => c.name).join(', ')}`; failureReason = `CAPTCHA present: ${visibleRecaptcha.map(c => c.name).join(', ')}`;
console.error(` Cannot auto-solve ${captchaInfo.map(c => c.name).join(', ')}`); console.error(` Cannot auto-solve ${visibleRecaptcha.map(c => c.name).join(', ')}`);
return { siteFailed, failureReason, page }; return { siteFailed, failureReason, page };
} else if (captchaInfo.some(c => c.type === 'recaptcha' || c.type === 'hcaptcha')) {
console.log(` CAPTCHA detected but not visible - attempting to proceed anyway`);
} }
} }