C¨¢ch t¨ªch h?p CapSolver v?i Playwright | H??ng d?n ho¨¤n ch?nh 2025

Anh Tuan
Data Science Expert
04-Sep-2025

Playwright l¨¤ g¨¬?
Playwright l¨¤ m?t khung ki?m th? t? ??ng h¨®a tr¨¬nh duy?t hi?n ??i ???c ph¨¢t tri?n b?i Microsoft. N¨® h? tr? t? ??ng h¨®a cho Chromium, Firefox v¨¤ WebKit (t??ng ?ng v?i Chrome, Firefox v¨¤ Safari). N¨® cung c?p m?t API m?nh m? ?? ?i?u khi?n tr¨¬nh duy?t, l?a ch?n ph?n t?, t??ng t¨¢c bi?u m?u, ch?n m?ng v¨¤ h?n th? n?a ¡ª l¨¤m cho n¨® l? t??ng cho c¨¢c t¨¢c v? y¨ºu c?u t??ng t¨¢c s?u s?c v?i c¨¢c trang web.
C¨¢c t¨ªnh n?ng ch¨ªnh c?a Playwright
B?t k? tr¨¬nh duy?t n¨¤o, b?t k? n?n t?ng n¨¤o, m?t API
- ?a tr¨¬nh duy?t: Playwright h? tr? t?t c? c¨¢c c?ng c? hi?n th? hi?n ??i, bao g?m Chromium, WebKit v¨¤ Firefox.
- ?a n?n t?ng: Ch?y c¨¢c b¨¤i ki?m tra tr¨ºn Windows, Linux v¨¤ macOS ¡ª c?c b? ho?c trong CI ¡ª kh?ng c¨® ??u ho?c c¨® ??u.
- ?a ng?n ng?: S? d?ng API Playwright v?i TypeScript, JavaScript, Python, .NET ho?c Java.
- Ki?m th? web di ??ng: M? ph?ng t? nhi¨ºn Google Chrome cho Android v¨¤ Mobile Safari. C¨´ng m?t c?ng c? hi?n th? ch?y tr¨ºn M¨¢y t¨ªnh ?? b¨¤n v¨¤ tr¨ºn Cloud.
Tr??ng h?p s? d?ng ?i?n h¨¬nh
- Tr¨ªch xu?t n?i dung ??ng: Tr¨ªch xu?t d? li?u ???c hi?n th? th?ng qua JavaScript.
- X? l? c¨¢c t??ng t¨¢c ph?c t?p: H?u ¨ªch cho c¨¢c trang y¨ºu c?u ??ng nh?p ho?c quy tr¨¬nh l¨¤m vi?c nhi?u b??c ?? truy c?p d? li?u.
- Tr¨ªch xu?t d? li?u t? c¨¢c ?ng d?ng SPA: Thu th?p d? li?u t? c¨¢c trang ???c x?y d?ng b?ng c¨¢c khung nh? Vue ho?c React.
- Ki?m th? t? ??ng: X¨¢c th?c ch?c n?ng trang trong khi thu th?p d? li?u.
- T? ??ng h¨®a ch? ?? kh?ng c¨® ??u: Th?c hi?n t?t c? c¨¢c h¨¤nh ??ng m¨¤ kh?ng c?n GUI, ph¨´ h?p v?i m?i tr??ng m¨¢y ch?.
C¨¢ch s? d?ng c? b?n c?a Playwright
S? d?ng Playwright trong Node.js:
bash
npm i playwright
npx playwright install # C¨¤i ??t t?t c? c¨¢c tr¨¬nh duy?t (Chromium, Firefox, WebKit)
V¨ª d?: L?y t?t c? ti¨ºu ?? blog t? CapSolver
Trong v¨ª d? b¨ºn d??i, ch¨²ng ta s? d?ng Playwirght ?? ?i?u h??ng ??n blog CapSolver v¨¤ l?y t?t c? ti¨ºu ?? b¨¤i ??ng blog <h5>
t? trang

javascript
const { chromium } = require('playwright');
(async () => {
const context = await chromium.launchPersistentContext('', {
headless: false,
viewport: { width: 1920, height: 1080 },
});
const [page] = context.pages();
await page.goto('/blog/All');
const h5Titles = await page.evaluate(() => {
const headings = Array.from(document.querySelectorAll('h5'));
return headings.map(heading => heading.textContent.trim());
});
console.log(h5Titles);
await context.close();
})();
C¨¢ch t¨ªch h?p ti?n ¨ªch m? r?ng CapSolver v?i Playwright
Playwright ?? m?nh ?? t?i c¨¢c ti?n ¨ªch m? r?ng tr¨¬nh duy?t gi?ng nh? m?t tr¨¬nh duy?t th?ng th??ng.
- T?i xu?ng v¨¤ gi?i n¨¦n t?p ZIP ti?n ¨ªch m? r?ng CapSolver m?i nh?t t? GitHub ch¨ªnh th?c
- Ch? ??nh ???ng d?n ti?n ¨ªch m? r?ng trong c¨¢c ??i s? kh?i ch?y Playwright b?ng
--disable-extensions-except
v¨¤--load-extension
.
javascript
const { chromium } = require('playwright');
const extensionPath = 'path/to/capsolver extension';
(async () => {
const context = await chromium.launchPersistentContext('', {
headless: false,
viewport: { width: 1920, height: 1080 },
args: [
`--disable-extensions-except=${extensionPath}`,
`--load-extension=${extensionPath}`,
],
});
const [page] = context.pages();
await page.goto('/blog/All');
await browser.close();
})();
Gi?i quy?t reCAPTCHA v2 b?ng ti?n ¨ªch m? r?ng CapSolver
C¨¢c lo?i CAPTCHA nh? reCAPTCHA v2/v3, Cloudflare Turnstile, AWS WAF, ???c s? d?ng r?ng r?i tr¨ºn h¨¤ng ngh¨¬n trang web. M?c d¨´ ph? bi?n, nh?ng c¨¢c CAPTCHA n¨¤y th??ng c¨® c?u tr¨²c DOM nh?t qu¨¢n v¨¤ c¨® th? ph¨¢t hi?n ???c. ?¨® l¨¤ n?i Ti?n ¨ªch m? r?ng CapSolver ho?t ??ng ¡ª n¨® t? ??ng ph¨¢t hi?n v¨¤ gi?i quy?t ch¨²ng m¨¤ kh?ng c?n t??ng t¨¢c th? c?ng.
H?y l?y reCAPTCHA v2 l¨¤m v¨ª d? ?? ch?ng minh c¨¢ch gi?i quy?t n¨® b?ng Ti?n ¨ªch m? r?ng CapSolver trong Playwright.
L?u ?: Tr? khi ???c n¨ºu r?, c¨¢c v¨ª d? sau ??y s? d?ng ch? ?? nh?p (/assets/config.js -> reCaptchaMode: 'click'
).
?? ??ng qu¨ºn gi?i n¨¦n t?p zip ti?n ¨ªch m? r?ng v¨¤ c?u h¨¬nh
apiKey
c?a b?n trong/assets/config.js
javascript
const { chromium } = require('playwright');
// B??c 1: T?i xu?ng ti?n ¨ªch m? r?ng t? GitHub: https://github.com/capsolver/capsolver-browser-extension/releases
// B??c 2: Gi?i n¨¦n t?p ti?n ¨ªch m? r?ng v¨¤ ??t apiKey c?a b?n trong /assets/config.js
const extensionPath = 'path/to/CapSolver Browser Extension-v1.16.0';
(async () => {
const context = await chromium.launchPersistentContext('', {
headless: false,
viewport: { width: 1920, height: 1080 },
args: [
`--disable-extensions-except=${extensionPath}`,
`--load-extension=${extensionPath}`,
'--lang=en-US'
],
});
const [page] = context.pages();
await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php');
await page.waitForSelector('form[action="/recaptcha-v2-checkbox.php"]');
// Ti?n ¨ªch m? r?ng s? t? ??ng ph¨¢t hi?n v¨¤ gi?i quy?t reCAPTCHA.
await page.waitForTimeout(15000); // Ch? gi?i quy?t
await page.click('button[type="submit"]');
await page.waitForTimeout(5000);
await context.close();
})();
?? Ti?n ¨ªch m? r?ng CapSolver c?ng h? tr? nhi?u t¨´y ch?n c?u h¨¬nh h?u ¨ªch. D??i ??y l¨¤ m?t s? v¨ª d? ph? bi?n (L?u ?: T?t c? c¨¢c c?u h¨¬nh ???c ??t trong
/assets/config.js
)
T¨´y ch?n c?u h¨¬nh: solvedCallback
Nh? b?n c¨® th? ?? nh?n th?y, trong m? tr??c ?¨®, ch¨²ng t?i ?? ch? 15 gi?y sau khi t?i trang tr??c khi nh?p v¨¤o n¨²t g?i. S? ch?m tr? n¨¤y nh?m m?c ?¨ªch cung c?p cho ti?n ¨ªch m? r?ng CapSolver ?? th?i gian ?? t? ??ng gi?i quy?t reCAPTCHA. Tuy nhi¨ºn, c¨¢ch ti?p c?n n¨¤y kh?ng l? t??ng ¡ª ??i khi CAPTCHA ???c gi?i quy?t nhanh h?n nhi?u v¨¤ trong ?i?u ki?n m?ng k¨¦m, n¨® c¨® th? m?t nhi?u h?n 15 gi?y.
?¨® l¨¤ n?i solvedCallback
ho?t ??ng. N¨® cung c?p m?t gi?i ph¨¢p t?t h?n b?ng c¨¢ch k¨ªch ho?t m?t h¨¤m g?i l?i khi CAPTCHA ?? ???c gi?i quy?t, th?ng b¨¢o cho b?n r?ng x¨¢c minh ?? ho¨¤n t?t. B?n c¨® th? c?u h¨¬nh solvedCallback
trong /assets/config.js
b?ng c¨¢ch ??nh ngh?a t¨ºn h¨¤m t¨´y ch?nh ¡ª theo m?c ??nh, ?¨® l¨¤ captchaSolvedCallback
. Sau ?¨®, h?y s? d?ng page.exposeFunction
trong Playwright ?? hi?n th? h¨¤m n¨¤y trong ng? c?nh tr¨¬nh duy?t.
B?y gi?, h?y c?i thi?n m? tr??c ?¨® c?a ch¨²ng ta b?ng c¨¢ch ti?p c?n n¨¤y.
javascript
const { chromium } = require('playwright');
const extensionPath = 'path/to/CapSolver Browser Extension-v1.16.0';
(async () => {
const context = await chromium.launchPersistentContext('', {
headless: false,
viewport: { width: 1920, height: 1080 },
args: [
`--disable-extensions-except=${extensionPath}`,
`--load-extension=${extensionPath}`,
'--lang=en-US'
],
});
const [page] = context.pages();
await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php');
await page.waitForSelector('form[action="/recaptcha-v2-checkbox.php"]');
await page.exposeFunction('captchaSolvedCallback', async () => {
console.log('Captcha ?? ???c gi?i quy?t!');
const iframe = await page.$('iframe[src*="recaptcha"]');
if (iframe) {
const frame = await iframe.contentFrame();
const finished = await frame.evaluate(() => {
const element = document.querySelector('.recaptcha-checkbox-border');
return element && window.getComputedStyle(element).display === 'none';
});
if (finished) {
console.log('X¨¢c minh ?? ho¨¤n t?t!');
await page.click('button[type="submit"]');
await page.waitForTimeout(3000);
await context.close();
} else {
console.log('X¨¢c minh ch?a ho¨¤n t?t. Th? l?i...');
}
}
});
})();
??i v?i reCAPTCHA v2, ??i khi nhi?u th? th¨¢ch h¨¬nh ?nh c¨® th? xu?t hi?n. V¨¬ v?y, sau m?i th? th¨¢ch, ch¨²ng ta ki?m tra xem h?p ki?m "T?i kh?ng ph?i l¨¤ ng??i m¨¢y" ?? ???c ch?n ch?a ¡ª n?u n¨® bi?n m?t, qu¨¢ tr¨¬nh x¨¢c minh ???c coi l¨¤ ?? ho¨¤n t?t.
T¨´y ch?n c?u h¨¬nh: manualSolving
Trong c¨¢c v¨ª d? tr??c ?¨®, vi?c gi?i quy?t CAPTCHA b?t ??u ngay l?p t?c khi t?i trang. Tuy nhi¨ºn, trong m?t s? tr??ng h?p, b?n c¨® th? c?n th?c hi?n c¨¢c t¨¢c v? kh¨¢c tr??c ti¨ºn ¡ª nh? nh?p t¨ºn ng??i d¨´ng/m?t kh?u ¡ª tr??c khi k¨ªch ho?t vi?c gi?i quy?t CAPTCHA. B?t ??u qu¨¢ s?m c¨® th? khi?n m? th?ng b¨¢o h?t h?n.
?? x? l? ?i?u n¨¤y, h?y ??t manualSolving: true
trong /assets/config.js
, cho ph¨¦p b?n t? ??ng k¨ªch ho?t qu¨¢ tr¨¬nh gi?i quy?t CAPTCHA.
C¨® hai c¨¢ch ?? k¨ªch ho?t gi?i quy?t:
- M? ph?ng vi?c nh?p v¨¤o n¨²t CapSolver trong ti?n ¨ªch m? r?ng.
- Th?c thi:
window.postMessage({ type: 'capsolverSolve' });
?? L?u ?: T¨ªnh n?ng n¨¤y ch? ???c h? tr? trong c¨¢c phi¨ºn b?n ti?n ¨ªch m? r?ng cao h?n v1.16.0!
V¨ª d?:
javascript
const { chromium } = require('playwright');
const extensionPath = 'path/to/CapSolver Browser Extension-v1.16.0';
(async () => {
const context = await chromium.launchPersistentContext('', {
headless: false,
viewport: { width: 1920, height: 1080 },
args: [
`--disable-extensions-except=${extensionPath}`,
`--load-extension=${extensionPath}`,
'--lang=en-US'
],
});
const [page] = context.pages();
await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php');
await page.waitForSelector('form[action="/recaptcha-v2-checkbox.php"]');
// M? ph?ng vi?c ?i?n th?ng tin ??ng nh?p
await page.evaluate(() => {
const inputA = document.querySelector('input[name="ex-a"]');
inputA.value = 'username';
const inputB = document.querySelector('input[name="ex-b"]');
inputB.value = 'password';
});
// M? ph?ng c¨¢c s? ch?m tr? ho?c ho?t ??ng c?a ng??i d¨´ng kh¨¢c
for (let i = 1; i <= 5; i++) {
await page.waitForTimeout(1000);
console.log(`?? ch? ${i} gi?y...`);
}
console.log('B?t ??u gi?i quy?t CAPTCHA...');
// Ph??ng ph¨¢p 1: M? ph?ng vi?c nh?p v¨¤o n¨²t CapSolver
await page.evaluate(() => {
document.querySelector('#capsolver-solver-tip-button').click();
});
// Ph??ng ph¨¢p 2: K¨ªch ho?t b?ng postMessage
// await page.evaluate(() => {
// window.postMessage({ type: 'capsolverSolve' });
// });
await page.exposeFunction('captchaSolvedCallback', async () => {
console.log('Captcha ?? ???c gi?i quy?t!');
const iframe = await page.$('iframe[src*="recaptcha"]');
if (iframe) {
const frame = await iframe.contentFrame();
const finished = await frame.evaluate(() => {
const element = document.querySelector('.recaptcha-checkbox-border');
return element && window.getComputedStyle(element).display === 'none';
});
if (finished) {
console.log('X¨¢c minh ?? ho¨¤n t?t!');
await page.click('button[type="submit"]');
await page.waitForTimeout(3000);
await context.close();
} else {
console.log('X¨¢c minh ch?a ho¨¤n t?t. Th? l?i.');
}
}
});
})();
T¨´y ch?n c?u h¨¬nh: reCaptchaMode
C¨¤i ??t reCaptchaMode
h? tr? hai ch? ??: click
v¨¤ token
.
- Ch? ?? click m? ph?ng t??ng t¨¢c c?a con ng??i ¡ª nh?p qua c¨¢c th? th¨¢ch h¨¬nh ?nh.
- Ch? ?? token tr?c ti?p s? d?ng API CapSolver ?? l?y m? th?ng b¨¢o gi?i ph¨¢p m¨¤ kh?ng c?n t??ng t¨¢c UI.
N?u b?n g?p ph?i nhi?u v¨°ng l?a ch?n h¨¬nh ?nh b?ng ch? ?? click
, c¨® th? l¨¤ do ?i?m d?u v?n tay tr¨¬nh duy?t th?p. N¨ºn chuy?n sang ch? ?? token
?? c¨® ?? tin c?y t?t h?n.
Ch? ?? Click | Ch? ?? Token |
---|---|
![]() |
![]() |
T¨´y ch?n c?u h¨¬nh: showSolveButton
Khi showSolveButton
???c ??t th¨¤nh false
(m?c ??nh l¨¤ true
), n¨²t CapSolver s? kh?ng c¨°n ???c hi?n th? tr¨ºn trang n?a. Tuy nhi¨ºn, ?i?u n¨¤y s? kh?ng ?nh h??ng ??n ch?c n?ng gi?i quy?t CAPTCHA b¨¬nh th??ng.

T¨´y ch?n c?u h¨¬nh: useProxy
Sau khi ??t useProxy: true
, b?n c¨® th? ch? ??nh c¨¢c tham s? sau: proxyType
, hostOrIp
, port
, proxyLogin
v¨¤ proxyPassword
. V?i thi?t l?p n¨¤y, ch¨²ng ta s? s? d?ng proxy t¨´y ch?nh c?a b?n ?? gi?i quy?t CAPTCHA. Khi n¨¤o b?n n¨ºn s? d?ng proxy c?a ri¨ºng m¨¬nh? Th?ng th??ng, trong c¨¢c tr??ng h?p sau:
- Proxy c?a b?n cung c?p ch?t l??ng t?t h?n (v¨ª d?: m? th?ng b¨¢o reCAPTCHA ???c t?o b?ng proxy c?a b?n nh?n ???c ?i?m cao h?n) ho?c t?c ?? gi?i quy?t nhanh h?n;
- Trong m?t s? tr??ng h?p, IP ???c s? d?ng ?? gi?i quy?t CAPTCHA ph?i gi?ng v?i IP ???c s? d?ng ?? g?i m? th?ng b¨¢o.
Tr¨ºn ??y l¨¤ m?t s? t¨´y ch?n c?u h¨¬nh th??ng ???c s? d?ng. B?n c¨® th? ?i?u ch?nh c¨¢c c¨¤i ??t kh¨¢c theo nhu c?u th?c t? c?a m¨¬nh. N?u b?n c¨® b?t k? c?u h?i n¨¤o, vui l¨°ng li¨ºn h? v?i h? tr? kh¨¢ch h¨¤ng c?a ch¨²ng t?i.
Gi?i quy?t CAPTCHA ImageToText b?ng ti?n ¨ªch m? r?ng CapSolver
Kh?ng gi?ng nh? c¨¢c CAPTCHA c?a b¨ºn th? ba nh? reCAPTCHA, Cloudflare Turnstile, AWS WAF ho?c GeeTest, c¨® m?t lo?i CAPTCHA kh¨¢c y¨ºu c?u nh?n d?ng ch? c¨¢i ho?c ch? s? t? h¨¬nh ?nh. Ch¨²ng t?i g?i ??y l¨¤ CAPTCHA ImageToText. Ch¨²ng th??ng tr?ng nh? th? n¨¤y:
ImageToText l¨¤ m?t CAPTCHA ???c ch¨ªnh qu?n tr? vi¨ºn trang web tri?n khai. Kh?ng gi?ng nh? CAPTCHA c?a b¨ºn th? ba, CAPTCHA ImageToText ???c ch? s? h?u trang web t¨´y ch?nh. V¨¬ c¨¢c CAPTCHA n¨¤y kh¨¢c nhau v? v? tr¨ª tr¨ºn c¨¢c trang web v¨¤ trang kh¨¢c nhau, n¨ºn Ti?n ¨ªch m? r?ng CapSolver kh?ng th? t? ??ng ph¨¢t hi?n h¨¬nh ?nh n¨¤o l¨¤ CAPTCHA. Do ?¨®, b?n ph?i th?ng b¨¢o r? r¨¤ng cho Ti?n ¨ªch m? r?ng CapSolver trong m? c?a m¨¬nh. ??y l¨¤ c¨¢ch th?c hi?n:
- Th¨ºm thu?c t¨ªnh
capsolver-image-to-text-source
c¨® gi¨¢ tr?0
v¨¤o ph?n t? h¨¬nh ?nh c?a CAPTCHA; - Th¨ºm thu?c t¨ªnh
capsolver-image-to-text-result
c¨® gi¨¢ tr?0
v¨¤o tr??ng nh?p n?i k?t qu? n¨ºn ???c ?i?n v¨¤o.
C¨¢c thu?c t¨ªnh n¨¤y ¡ª capsolver-image-to-text-source
v¨¤ capsolver-image-to-text-result
¡ª c¨® th? ???c c?u h¨¬nh trong /assets/config.js
b?ng c¨¢c tr??ng textCaptchaSourceAttribute
v¨¤ textCaptchaResultAttribute
, t??ng ?ng.
H?y c¨´ng xem x¨¦t m?t v¨ª d? s? d?ng trang:
https://captcha.com/demos/features/captcha-demo.aspx
??u ti¨ºn, h?y ki?m tra ngu?n trang ?? ??nh v? ph?n t? h¨¬nh ?nh CAPTCHA v¨¤ tr??ng nh?p k?t qu?. Trong tr??ng h?p n¨¤y:
- ID ph?n t? h¨¬nh ?nh CAPTCHA:
demoCaptcha_CaptchaImage
- ID tr??ng nh?p cho k?t qu?:
captchaCode
(?nh ch?p m¨¤n h¨¬nh b¨ºn d??i)
B?y gi?, ch¨²ng ta h?y s? d?ng Playwright ?? t? ??ng gi?i quy?t CAPTCHA n¨¤y b?ng c¨¢ch ?¨¢nh d?u c¨¢c ph?n t? n¨¤y cho ph¨´ h?p:
javascript
const { chromium } = require('playwright');
// B??c 1: L?y ti?n ¨ªch m? r?ng t? GitHub (https://github.com/capsolver/capsolver-browser-extension/releases)
// B??c 2: Gi?i n¨¦n t?p zip ti?n ¨ªch m? r?ng v¨¤ c?u h¨¬nh apiKey c?a b?n trong /assets/config.js
const extensionPath = 'path/to/CapSolver Browser Extension-v1.16.0';
(async () => {
const context = await chromium.launchPersistentContext('', {
headless: false,
viewport: { width: 1920, height: 1080 },
args: [
`--disable-extensions-except=${extensionPath}`,
`--load-extension=${extensionPath}`,
'--lang=en-US'
],
});
const [page] = context.pages();
await page.goto('https://captcha.com/demos/features/captcha-demo.aspx');
await page.waitForSelector('#demoCaptcha_CaptchaImage');
// Th?ng b¨¢o cho Ti?n ¨ªch m? r?ng CapSolver v? tr¨ª c?a h¨¬nh ?nh CAPTCHA
await page.evaluate(() => {
const imgElement = document.querySelector('#demoCaptcha_CaptchaImage');
if (imgElement) {
imgElement.setAttribute('capsolver-image-to-text-source', '0');
}
});
// Th?ng b¨¢o cho Ti?n ¨ªch m? r?ng CapSolver v? tr¨ª k?t qu? nh?n d?ng n¨ºn ???c nh?p
await page.evaluate(() => {
const resultElement = document.querySelector('#captchaCode');
if (resultElement) {
resultElement.setAttribute('capsolver-image-to-text-result', '0');
}
});
// Ch? CAPTCHA ???c gi?i quy?t v¨¤ g?i bi?u m?u
await page.exposeFunction('captchaSolvedCallback', async () => {
console.log('Captcha ?? ???c gi?i quy?t!');
await page.waitForTimeout(3000);
await page.click('#validateCaptchaButton');
await page.waitForTimeout(3000);
await context.close();
});
})();
K?t qu?:

C¨¢ch t¨ªch h?p CapSolver API v?i Playwright
S? d?ng Ti?n ¨ªch m? r?ng CapSolver r?t ti?n l?i v¨¤ nhanh ch¨®ng, nh?ng n?u b?n l¨¤ m?t nh¨¤ ph¨¢t tri?n gi¨¤u kinh nghi?m, ch¨²ng t?i khuy?n kh¨ªch b?n n¨ºn s? d?ng t¨ªch h?p API h?n. So v?i ph??ng ph¨¢p d?a tr¨ºn ti?n ¨ªch m? r?ng, ph??ng ph¨¢p API cung c?p m?t s? l?i th? ch¨ªnh:
- C¨¢c tham s? t¨´y ch?nh h?n ¨C B?n c¨® th? tinh ch?nh c¨¢c y¨ºu c?u c?a m¨¬nh ?? ph¨´ h?p h?n v?i h?u h?t m?i tr??ng h?p CAPTCHA.
- Ki?m so¨¢t t?t h?n ¨C B?n c¨® th? quy?t ??nh ch¨ªnh x¨¢c khi n¨¤o v¨¤ l¨¤m th? n¨¤o ?? gi?i quy?t CAPTCHA.
- Th?ng b¨¢o l?i chi ti?t h?n ¨C ?i?u n¨¤y gi¨²p c¨¢c nh¨¤ ph¨¢t tri?n th?c hi?n t?i ?u h¨®a c¨® m?c ti¨ºu.
Tr??c khi ch¨²ng ta ?i s?u v¨¤o b?n demo m?, ??y l¨¤ t?ng quan nhanh v? c¨¢ch s? d?ng API CapSolver:
- B??c 1: https://api.capsolver.com/createTask ¡ª T?o m?t t¨¢c v?
- B??c 2: https://api.capsolver.com/getTaskResult ¡ª L?y k?t qu? t¨¢c v?
?? t?o m?t t¨¢c v?, b?n c?n g?i m?t ??i t??ng JSON ??n CapSolver. JSON n¨¤y bao g?m clientKey
, websiteURL
, websiteKey
v¨¤ c¨¢c d? li?u kh¨¢c c?a b?n. C¨¢c tr??ng n¨¤y thay ??i t¨´y thu?c v¨¤o lo?i CAPTCHA v¨¤ trang web.
? ?? bi?t chi ti?t, h?y tham kh?o t¨¤i li?u c?a ch¨²ng t?i: t¨¤i li?u
Gi?i quy?t reCAPTCHA v2 b?ng CapSolver API
Tr??c khi gi?i quy?t reCAPTCHA v2, vui l¨°ng ??c t¨¤i li?u t?i ??y:
? ReCaptchaV2
H??ng d?n n¨¤y gi?i th¨ªch c¨¢c tham s? JSON c?n bao g?m khi t?o m?t t¨¢c v?.
Ngo¨¤i ra, b?n c¨® th? s? d?ng Ti?n ¨ªch m? r?ng CapSolver ?? nhanh ch¨®ng t?o d? li?u JSON cho c¨¢c y¨ºu c?u API c?a m¨¬nh.
Xem blog n¨¤y ?? ???c tr? gi¨²p:
? l?y d? li?u JSON
H?y l?y v¨ª d? sau:
? https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php
JSON c?n thi?t ?? t?o m?t t¨¢c v? cho trang n¨¤y l¨¤:
json
{
"type": "ReCaptchaV2TaskProxyLess",
"websiteKey": "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9",
"websiteURL": "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
}
Ch¨²ng t?i c?ng cung c?p c¨¢c m?u m? JavaScript ?? s? d?ng API trong t¨¤i li?u c?a m¨¬nh:

T¨ªch h?p trong Playwright:
javascript
const { chromium } = require('playwright');
const axios = require('axios');
// Thay th? b?ng kh¨®a API c?a b?n
const api_key = 'YOUR_API_KEY';
const captcha_type = 'ReCaptchaV2TaskProxyLess';
const site_key = '6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9';
const site_url = 'https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php';
async function capSolver() {
const payload = {
clientKey: api_key,
task: {
type: captcha_type,
websiteKey: site_key,
websiteURL: site_url
}
};
try {
const res = await axios.post('https://api.capsolver.com/createTask', payload);
const task_id = res.data.taskId;
if (!task_id) {
console.log('Th?t b?i khi t?o t¨¢c v?:', res.data);
return;
}
console.log('?? l?y taskId:', task_id);
while (true) {
await new Promise(resolve => setTimeout(resolve, 1000)); // Ch? trong 1 gi?y
const getResultPayload = { clientKey: api_key, taskId: task_id };
const resp = await axios.post('https://api.capsolver.com/getTaskResult', getResultPayload);
const status = resp.data.status;
if (status === 'ready') {
return resp.data.solution.gRecaptchaResponse;
}
if (status === 'failed' || resp.data.errorId) {
console.log('Gi?i quy?t th?t b?i! ph?n h?i:', resp.data);
return;
}
}
} catch (error) {
console.error('L?i:', error);
}
}
(async () => {
const context = await chromium.launchPersistentContext('', {
headless: false,
viewport: { width: 1920, height: 1080 },
args: ['--lang=en-US'],
});
const [page] = context.pages();
await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php');
await page.waitForSelector('form[action="/recaptcha-v2-checkbox.php"]');
const token = await capSolver();
console.log("Token:", token);
// ??t gi¨¢ tr? token
await page.evaluate((token) => {
const textarea = document.getElementById('g-recaptcha-response');
if (textarea) {
textarea.value = token;
}
}, token);
await page.click('button[type="submit"]');
await page.waitForTimeout(5000);
await context.close();
})();
Gi?i quy?t ImageToText b?ng CapSolver API
Ch¨²ng ta v?n s? d?ng v¨ª d? v? https://captcha.com/demos/features/captcha-demo.aspx, trong ?¨® ph?n t? h¨¬nh ?nh captcha c¨® id demoCaptcha_CaptchaImage
, v¨¤ ph?n t? ??u v¨¤o k?t qu? c¨® id captchaCode
, nh? ???c hi?n th? trong h¨¬nh ?nh sau:

??i v?i ImageToTextTask, ch¨²ng ta c?n truy?n gi¨¢ tr? base64 c?a h¨¬nh ?nh captcha ??n CapSolver. M? v¨ª d? nh? sau:
javascript
const { chromium } = require('playwright');
const axios = require('axios');
// Thay th? b?ng kh¨®a API c?a b?n
const api_key = 'YOUR_API_KEY';
const captcha_type = 'ImageToTextTask';
const site_url = 'https://captcha.com/demos/features/captcha-demo.aspx';
async function capSolver(base64Image) {
const payload = {
clientKey: api_key,
task: {
type: captcha_type,
websiteURL: site_url,
body: base64Image,
}
};
try {
const res = await axios.post('https://api.capsolver.com/createTask', payload);
const status = res.data.status;
if (status === 'ready') {
return res.data.solution.text;
}
if (status === 'failed' || res.data.errorId) {
console.log('Gi?i quy?t th?t b?i! ph?n h?i:', res.data);
return "";
}
} catch (error) {
console.error('L?i:', error);
}
}
(async () => {
const context = await chromium.launchPersistentContext('', {
headless: false,
viewport: { width: 1920, height: 1080 },
args: ['--lang=en-US'],
});
const [page] = context.pages();
await page.goto('https://captcha.com/demos/features/captcha-demo.aspx');
await page.waitForSelector('#demoCaptcha_CaptchaImage');
// L?y gi¨¢ tr? base64 c?a h¨¬nh ?nh captcha
const captchaImage = await page.evaluate(() => {
const img = document.querySelector('img[id="demoCaptcha_CaptchaImage"]');
return img ? img.getAttribute('src') : null;
});
const base64Image = captchaImage.split(',')[1];
const text = await capSolver(base64Image);
console.log("Text:", text);
// ??t v?n b?n captcha ?? ???c gi?i quy?t
await page.evaluate((text) => {
document.getElementById('captchaCode').value = text;
}, text);
await page.click('#validateCaptchaButton');
await page.waitForTimeout(5000);
await context.close();
})();
Ngo¨¤i ra, ??i v?i m?t s? lo?i ImageToText ??c bi?t, b?n c¨® th? ch? ??nh c¨¢c m? h¨¬nh kh¨¢c nhau ?? c?i thi?n ?? ch¨ªnh x¨¢c. ?? bi?t chi ti?t, vui l¨°ng tham kh?o t¨¤i li?u c?a ch¨²ng t?i:
https://docs.capsolver.com/en/guide/recognition/ImageToTextTask/

T¨¤i li?u tham kh?o h?u ¨ªch
- T¨¤i li?u CapSolver
- B?n ph¨¢t h¨¤nh GitHub c?a ti?n ¨ªch m? r?ng CapSolver
- Ti?n ¨ªch m? r?ng CapSolver tr¨ºn Chrome Web Store
- Ti?n ¨ªch m? r?ng CapSolver tr¨ºn Firefox Add-ons
- Tr¨¬nh gi?i ?i?m s? gi?ng ng??i d¨´ng cho reCAPTCHA v3
Video demo c¨® t¨ªnh n?ng Ti?n ¨ªch m? r?ng CapSolver:
- Gi?i quy?t reCAPTCHA v3 b?ng ti?n ¨ªch m? r?ng Chrome CapSolver
- Gi?i quy?t reCAPTCHA v2 b?ng ti?n ¨ªch m? r?ng Chrome CapSolver
- Gi?i quy?t reCAPTCHA b?ng Puppeteer & Ti?n ¨ªch m? r?ng CapSolver
- Gi?i quy?t ImageToText b?ng Puppeteer & Ti?n ¨ªch m? r?ng CapSolver
Ngo¨¤i ra, CapSolver cung c?p Ch??ng tr¨¬nh chia s? doanh thu cho nh¨¤ ph¨¢t tri?n, cho ph¨¦p c¨¢c nh¨¤ ph¨¢t tri?n v¨¤ ??i t¨¢c ki?m hoa h?ng b?ng c¨¢ch t¨ªch h?p ho?c qu?ng b¨¢ c¨¢c gi?i ph¨¢p CapSolver. ?¨® l¨¤ m?t c¨¢ch tuy?t v?i ?? ki?m ti?n t? c?ng vi?c c?a b?n ??ng th?i gi¨²p ng??i kh¨¢c gi?i quy?t c¨¢c captcha m?t c¨¢ch hi?u qu?. ?? bi?t ??y ?? chi ti?t, h?y xem:
K? ho?ch d¨¤nh cho nh¨¤ ph¨¢t tri?n CapSolver
K?t lu?n
C¨¢c t¨ªnh n?ng m?nh m? c?a Playwright, k?t h?p v?i kh? n?ng x? l? CAPTCHA c?a CapSolver, cung c?p m?t gi?i ph¨¢p to¨¤n di?n cho t? ??ng h¨®a web. Cho d¨´ s? d?ng ti?n ¨ªch m? r?ng CapSolver ?? thu?n ti?n hay API ?? ki?m so¨¢t t?t h?n, vi?c t¨ªch h?p n¨¤y s? h?p l? h¨®a c¨¢c t¨¢c v? ph?c t?p v¨¤ n?ng cao quy tr¨¬nh t? ??ng h¨®a. Ngo¨¤i vi?c ch? gi?i quy?t CAPTCHA, h?y nh? r?ng CapSolver c?ng cung c?p Ch??ng tr¨¬nh chia s? doanh thu cho nh¨¤ ph¨¢t tri?n, t?o c? h?i tuy?t v?i ?? ki?m hoa h?ng b?ng c¨¢ch t¨ªch h?p ho?c qu?ng b¨¢ c¨¢c gi?i ph¨¢p c?a h?
Tuy¨ºn b? Tu?n th?: Th?ng tin ???c cung c?p tr¨ºn blog n¨¤y ch? mang t¨ªnh ch?t tham kh?o. CapSolver cam k?t tu?n th? t?t c? c¨¢c lu?t v¨¤ quy ??nh hi?n h¨¤nh. Vi?c s? d?ng m?ng l??i CapSolver cho c¨¢c ho?t ??ng b?t h?p ph¨¢p, gian l?n ho?c l?m d?ng l¨¤ ho¨¤n to¨¤n b? c?m v¨¤ s? b? ?i?u tra. C¨¢c gi?i ph¨¢p gi?i captcha c?a ch¨²ng t?i n?ng cao tr?i nghi?m ng??i d¨´ng trong khi ??m b?o tu?n th? 100% trong vi?c gi¨²p gi?i quy?t c¨¢c kh¨® kh?n v? captcha trong qu¨¢ tr¨¬nh thu th?p d? li?u c?ng khai. Ch¨²ng t?i khuy?n kh¨ªch vi?c s? d?ng d?ch v? c?a ch¨²ng t?i m?t c¨¢ch c¨® tr¨¢ch nhi?m. ?? bi?t th¨ºm th?ng tin, vui l¨°ng truy c?p ?i?u kho?n D?ch v? v¨¤ Ch¨ªnh s¨¢ch Quy?n ri¨ºng t?.
Th¨ºm

L¨¤m th? n¨¤o ?? gi?i quy?t m?i phi¨ºn b?n c?a reCAPTCHA Enterprise v2, v2 v? h¨¬nh, v3, v3 Enterprise ?i?m 0.9
N?m v?ng c¨¢ch gi?i quy?t m?i phi¨ºn b?n reCaptcha v?i CapSolver: H??ng d?n n¨¤y cung c?p h??ng d?n t?ng b??c ?? gi?i quy?t reCaptcha m?t c¨¢ch hi?u qu?, ??m b?o k?t qu? ch¨ªnh x¨¢c m?i l?n.

Anh Tuan
11-Oct-2025

L¨¤m th? n¨¤o ?? gi?i CAPTCHA h¨¬nh ?nh
B¨¤i vi?t n¨¤y cung c?p m?t h??ng d?n to¨¤n di?n v? c¨¢ch gi?i captcha h¨¬nh ?nh b?ng CapSolver, m?t c?ng c? ???c thi?t k? ?? t? ??ng h¨®a quy tr¨¬nh. N¨® b?t ??u b?ng vi?c gi?i th¨ªch v? kh¨¢i ni?m captcha h¨¬nh ?nh, sau ?¨® l¨¤ m?t h??ng d?n chi ti?t t?ng b??c v? c¨¢ch s? d?ng API c?a CapSolver ?? gi?i c¨¢c captcha n¨¤y. H??ng d?n bao g?m c¨¢c v¨ª d? v? c¨¢c y¨ºu c?u v¨¤ ph?n h?i li¨ºn quan ??n quy tr¨¬nh. B¨¤i vi?t k?t th¨²c b?ng m?t nh?n x¨¦t v? hi?u qu? v¨¤ ti?n l?i khi s? d?ng CapSolver ?? gi?i captcha h¨¬nh ?nh, l¨¤m cho n¨® tr? th¨¤nh m?t ngu?n t¨¤i nguy¨ºn qu? gi¨¢ cho nh?ng ng??i mu?n t? ??ng h¨®a c¨¢c nhi?m v? li¨ºn quan ??n vi?c gi?i captcha.

Anh Tuan
11-Oct-2025

Gi?i reCaptcha v2 Enterprise
Trong th? gi?i s?, an ninh v¨¤ s? ti?n l?i cho ng??i d¨´ng th??ng ? hai ??u m¨²t ??i l?p c?a thang ?o. CAPTCHAs, ??c bi?t l¨¤ reCaptcha, ?? ?¨®ng vai tr¨° thi?t y?u trong vi?c t¨¬m ra s? c?n b?ng gi?a hai y?u t? n¨¤y. Tuy nhi¨ºn, n?u b?n c?n gi?i quy?t c¨¢c b¨¤i ki?m tra reCaptcha th??ng ph?c t?p v¨¤ t?n th?i gian, ??c bi?t l¨¤ reCaptcha V2 Enterprise, v¨¬ m?t m?c ?¨ªch h?p ph¨¢p nh? ki?m th? t? ??ng th¨¬ sao? Trong b¨¤i vi?t n¨¤y, ch¨²ng t?i s? h??ng d?n b?n qua quy tr¨¬nh gi?i reCaptcha V2 Enterprise b?ng API c?a CapSolver.

Anh Tuan
11-Oct-2025

Gi?i reCaptcha v3
H?c c¨¢ch gi?i reCaptcha V3 b?ng CapSolver: nhi?u lo?i nhi?m v?, t¨ªch h?p API ??n gi?n v¨¤ c¨¢c gi?i ph¨¢p hi?u qu? cho t? ??ng h¨®a v¨¤ ki?m th?

Anh Tuan
10-Oct-2025

C¨¢i n¨¤o l¨¤ gi?i ph¨¢p AWS WAF t?t nh?t trong khi qu¨¦t web v¨¤o n?m 2025?
H?c c¨¢ch gi?i quy?t CAPTCHA AWS WAF hi?u qu? b?ng CapSolver v¨¤o n?m 2025. H??ng d?n t?ng b??c, t¨ªch h?p Python, c?ng c? AI ?? t?ng t?c quy tr¨¬nh t? ??ng h¨®a c?a b?n. V??t qua c¨¢c token ??ng, ph?n t¨ªch h¨¤nh vi v¨¤ c¨¢c th¨¢ch th?c CAPTCHA ph?c t?p m?t c¨¢ch d? d¨¤ng.

Lucas Mitchell
26-Sep-2025

C¨¢ch gi?i quy?t reCaptcha v3 Enterprise
H?c c¨¢ch gi?i quy?t reCAPTCHA v3 Enterprise m?t c¨¢ch d? d¨¤ng b?ng Capsolver: ch¨¬a kh¨®a c?a b?n ?? v??t qua CAPTCHA ph?c t?p v?i ph?n t¨ªch r?i ro n?ng cao v¨¤ t¨ªch h?p li?n m?ch

Anh Tuan
24-Sep-2025