C¨¢ch gi?i quy?t reCAPTCHA v?i Puppeteer trong PHP cho Web Scraping

Anh Tuan
Data Science Expert
28-Aug-2024

B?n ?? bao gi? g?p ph?i r¨¤o c?n reCAPTCHA khi thu th?p d? li?u? T?i c?ng ?? t?ng tr?i qua ?i?u ?¨®. Nh?ng th? th¨¢ch CAPTCHA c¨® th? bi?n m?t nhi?m v? thu th?p d? li?u ??n gi?n th¨¤nh m?t tr? ng?i l?n. Nh?ng ??ng lo l?ng - t?i c¨® m?t gi?i ph¨¢p gi¨²p b?n v??t qua nh?ng r¨¤o c?n ?¨® m?t c¨¢ch d? d¨¤ng.
Trong b¨¤i vi?t n¨¤y, t?i s? h??ng d?n b?n s? d?ng Puppeteer, m?t th? vi?n Node.js m?nh m?, ?? gi?i quy?t c¨¢c th? th¨¢ch reCAPTCHA. Sau ?¨®, ch¨²ng ta s? t¨ªch h?p n¨® v?i PHP ?? l¨¤m cho c¨¢c nhi?m v? thu th?p d? li?u web c?a b?n tr? n¨ºn m??t m¨¤ v¨¤ hi?u qu? h?n. B?n ?? s?n s¨¤ng ?? gi?i quy?t reCAPTCHA v¨¤ l?y d? li?u m?t c¨¢ch li?n m?ch? H?y b?t ??u!
reCAPTCHA l¨¤ g¨¬ khi thu th?p d? li?u web?
?? cung c?p cho b?n m?t s? ng? c?nh, reCAPTCHA l¨¤ m?t h? th?ng ???c thi?t k? ?? b?o v? c¨¢c trang web kh?i b? l?m d?ng t? ??ng. N¨® y¨ºu c?u ng??i d¨´ng ho¨¤n th¨¤nh c¨¢c nhi?m v? d? d¨¤ng ??i v?i con ng??i nh?ng ??y th¨¢ch th?c ??i v?i bot, ch?ng h?n nh? x¨¢c ??nh ??i t??ng trong h¨¬nh ?nh ho?c ?¨¢nh d?u v¨¤o m?t ?. M?c d¨´ nh?ng th? th¨¢ch n¨¤y r?t t?t cho b?o m?t, nh?ng ch¨²ng c¨® th? g?y kh¨® kh?n cho vi?c thu th?p d? li?u web. D??i ??y l¨¤ c¨¢c lo?i c? b?n m¨¤ b?n c¨® th? g?p ph?i:
- reCAPTCHA v2: Phi¨ºn b?n n¨¤y ???c bi?t ??n v?i h?p ki?m "T?i kh?ng ph?i l¨¤ robot" v¨¤ c¨¢c th? th¨¢ch d?a tr¨ºn h¨¬nh ?nh. Ng??i d¨´ng c¨® th? c?n ph?i nh?p v¨¤o h¨¬nh ?nh ho?c ho¨¤n th¨¤nh c¨¢c h¨¤nh ??ng c? th? ?? ch?ng minh r?ng h? l¨¤ ng??i. N¨® hi?u qu? trong vi?c ph?n bi?t gi?a ng??i d¨´ng th?c v¨¤ bot.

-
reCAPTCHA v3: Phi¨ºn b?n n¨¤y ho?t ??ng trong n?n. Thay v¨¬ y¨ºu c?u ng??i d¨´ng t??ng t¨¢c, n¨® ph?n t¨ªch h¨¤nh vi c?a ng??i d¨´ng tr¨ºn to¨¤n b? trang web v¨¤ g¨¢n m?t ?i?m s? r?i ro. ?i?m s? n¨¤y gi¨²p c¨¢c trang web x¨¢c ??nh xem c¨® n¨ºn c?p quy?n truy c?p hay ch?n quy?n truy c?p d?a tr¨ºn kh? n?ng ng??i d¨´ng l¨¤ bot.
-
reCAPTCHA Doanh nghi?p: D¨¤nh cho c¨¢c doanh nghi?p c¨® y¨ºu c?u b?o m?t cao h?n, reCAPTCHA Doanh nghi?p cung c?p b?o v? n?ng cao ch?ng l?i c¨¢c m?i ?e d?a tinh vi. N¨® bao g?m c¨¢c t¨ªnh n?ng nh? ph?n t¨ªch r?i ro n?ng cao, ?i?m s? c¨® th? t¨´y ch?nh v¨¤ kh? n?ng m? r?ng ???c c?i thi?n, ph¨´ h?p cho c¨¢c t? ch?c x? l? th?ng tin nh?y c?m ho?c c¨¢c ho?t ??ng quan tr?ng.
B?n ?ang g?p kh¨® kh?n v?i vi?c gi?i quy?t captcha g?y phi?n nhi?u?
Kh¨¢m ph¨¢ gi?i ph¨¢p t? ??ng gi?i quy?t captcha li?n m?ch v?i c?ng ngh? Auto Web Unblock AI do Capsolver cung c?p!
Nh?n M? khuy?n m?i c?a b?n cho c¨¢c gi?i ph¨¢p captcha h¨¤ng ??u; CapSolver: WEBS. Sau khi ??i m?, b?n s? nh?n ???c th¨ºm 5% ti?n th??ng sau m?i l?n n?p ti?n, kh?ng gi?i h?n
Hi?u r? c¨¢c phi¨ºn b?n n¨¤y s? gi¨²p ch¨²ng ta v??t qua nh?ng th? th¨¢ch c?a reCAPTCHA m?t c¨¢ch hi?u qu?. H?y c¨´ng t¨¬m hi?u c¨¢ch ch¨²ng ta c¨® th? s? d?ng Puppeteer v¨¤ CapSolver ?? x? l? nh?ng th? th¨¢ch n¨¤y v¨¤ t?i ?u h¨®a n? l?c thu th?p d? li?u web c?a m¨¬nh.
CapSolver c¨® th? gi¨²p gi?i quy?t reCAPTCHA nh? th? n¨¤o
CapSolver l¨¤ m?t gi?i ph¨¢p m?nh m? ?? x? l? c¨¢c th? th¨¢ch CAPTCHA, bao g?m reCAPTCHA. D??i ??y l¨¤ c¨¢ch b?n c¨® th? t¨ªch h?p CapSolver v¨¤o quy tr¨¬nh c?a m¨¬nh ?? ??n gi?n h¨®a vi?c gi?i quy?t CAPTCHA:
- Truy xu?t Kh¨®a Trang web
- T¨¬m ki?m trong nh?t k? y¨ºu c?u tr¨¬nh duy?t ?? t¨¬m y¨ºu c?u nh?
/recaptcha/api2/reload?k=6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf
. Tham s?k=
l¨¤ kh¨®a trang web b?n c?n. - N?u b?n cung c?p kh¨®a kh?ng ch¨ªnh x¨¢c, b?n s? nh?n ???c th?ng b¨¢o l?i nh?:
Gi?i quy?t th?t b?i! ph?n h?i: {"errorId":1,"errorCode":"ERROR_INVALID_TASK_DATA","errorDescription":"Kh¨®a trang web kh?ng h?p l?","taskId":"1cd1e687-96dd-4f14-b8ef-18b5d144d9b8","status":"failed"}
- T¨¬m ki?m trong nh?t k? y¨ºu c?u tr¨¬nh duy?t ?? t¨¬m y¨ºu c?u nh?
- N?u b?n s? d?ng phi¨ºn b?n reCAPTCHA sai (V2 ho?c V3), ho?c n?u c¨® s? kh?ng kh?p gi?a lo?i trang web m?c ti¨ºu v¨¤ lo?i y¨ºu c?u API, b?n c¨® th? th?y:
Solve failed! response: {"errorId":1,"errorCode":"ERROR_CAPTCHA_SOLVE_FAILED","errorDescription":"Failed to solve the captcha: 1001","taskId":"da450cbc-ff9d-439d-908a-77e7eb8852dd","status":"failed"}
-
C¨¤i ??t m?i tr??ng c?a b?n
- C¨¤i ??t c¨¢c g¨®i c?n thi?t:bash
npm install axios puppeteer-core
- C¨¤i ??t c¨¢c g¨®i c?n thi?t:
-
Vi?t m? t¨ªch h?p
php
<?php
require_once 'vendor/autoload.php';
use Nesk\Puphpeteer\Puppeteer;
use Nesk\Rialto\Data\JsFunction;
use GuzzleHttp\Client;
$puppeteer = new Puppeteer;
$browser = $puppeteer->launch();
// TODO: ??t c?u h¨¬nh c?a b?n
$api_key = "YOUR_API_KEY"; // kh¨®a API c?a b?n c?a CapSolver
$site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"; // kh¨®a trang c?a trang web m?c ti¨ºu c?a b?n
$site_url = "https://www.google.com/recaptcha/api2/demo"; // URL trang c?a trang web m?c ti¨ºu c?a b?n
function capsolver()
{
global $api_key, $site_key, $site_url;
$client = new Client();
$payload = [
'clientKey' => $api_key,
'task' => [
'type' => 'ReCaptchaV2TaskProxyLess',
'websiteKey' => $site_key,
'websiteURL' => $site_url,
]
];
try {
$response = $client->post("https://api.capsolver.com/createTask", [
'json' => $payload
]);
$data = json_decode($response->getBody(), true);
$task_id = $data['taskId'] ?? null;
if (!$task_id) {
echo "T?o nhi?m v? th?t b?i: " . json_encode($data) . PHP_EOL;
return null;
}
echo "?? nh?n taskId: " . $task_id . PHP_EOL;
while (true) {
sleep(1);
$getResultPayload = [
'clientKey' => $api_key,
'taskId' => $task_id
];
$resp = $client->post("https://api.capsolver.com/getTaskResult", [
```php
<?php
function capsolver()
{
try {
$client = new \GuzzleHttp\Client();
$resp = $client->post('https://api.capsolver.com/createTask', [
'json' => $getResultPayload
]);
$data = json_decode($resp->getBody(), true);
$status = $data['status'] ?? null;
if ($status === "ready") {
return $data['solution']['gRecaptchaResponse'];
}
if ($status === "failed" || isset($data['errorId'])) {
echo "Solve failed! response: " . json_encode($data) . PHP_EOL;
return null;
}
} catch (\Exception $e) {
echo "Error: " . $e->getMessage() . PHP_EOL;
return null;
}
}
function reqSite()
{
global $site_url, $browser;
$token = capsolver();
if ($token === null) {
return;
}
echo $token . PHP_EOL;
$page = $browser->newPage();
$page->goto($site_url);
$evaluate_script = <<<EOD
document.getElementById("g-recaptcha-response").value="$token";
onSuccess("$token");
EOD;
$page->evaluate(JsFunction::createWithBody($evaluate_script));
$product_element = $page->querySelector('#recaptcha-demo-submit');
if ($product_element instanceof ElementHandle) {
$product_element->click();
} else {
echo 'Element not found.' . PHP_EOL;
}
}
reqSite();
Cho d¨´ b?n ?ang x? l? reCAPTCHA v2, v3 hay Enterprise, vi?c t¨ªch h?p CapSolver v?i Puppeteer c¨® th? ??n gi?n h¨®a quy tr¨¬nh l¨¤m vi?c c?a b?n v¨¤ n?ng cao hi?u qu? thu th?p d? li?u. N?u b?n g?p ph?i b?t k? v?n ?? n¨¤o ho?c c?n h? tr? th¨ºm, c? CapSolver v¨¤ Puppeteer ??u cung c?p t¨¤i li?u v¨¤ h? tr? ??y ?? ?? gi¨²p b?n v??t qua m?i th¨¢ch th?c.
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

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¨¢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

C¨¢ch t¨¬m h¨¤m callback c?a reCaptcha
T¨¬m h¨¤m g?i l?i c?a reCAPTCHA li¨ºn quan ??n vi?c x¨¢c ??nh h¨¤m JavaScript ???c th?c thi sau khi reCAPTCHA ???c gi?i quy?t th¨¤nh c?ng. D??i ??y l¨¤ m?t b?n xem tr??c ng?n g?n v? c¨¢c b??c b?n c¨® th? th?c hi?n

Anh Tuan
23-Sep-2025

C¨¢ch gi?i quy?t reCaptcha v2
Trong b¨¤i vi?t n¨¤y, ch¨²ng t?i s? h??ng d?n b?n reCaptcha l¨¤ g¨¬ v¨¤ c¨¢ch d? d¨¤ng gi?i quy?t reCaptcha v2 b?ng CapSolver.

Anh Tuan
23-Sep-2025

C¨¢ch gi?i quy?t reCaptcha v3 v¨¤ ??t ?i?m gi?ng ng??i (>0.7¨C0.9)
T¨¬m hi?u c¨¢ch gi?i quy?t reCaptcha v3 hi?u qu? v?i Capsolver. H??ng d?n n¨¤y bao g?m m?i th? t? thi?t l?p ??n gi?i quy?t captcha, ??m b?o ?i?m s? cao v¨¤ ?i?u h??ng web m??t m¨¤

Anh Tuan
23-Sep-2025

Gi?i ph¨¢p reCAPTCHA v2 v¨¤ v3 t?t nh?t khi thu th?p d? li?u web v¨¤o n?m 2025 l¨¤ g¨¬
N?m 2025, v?i s? tinh vi h?n c?a c¨¢c h? th?ng ch?ng bot, vi?c t¨¬m ki?m c¨¢c gi?i ph¨¢p reCAPTCHA ?¨¢ng tin c?y ?? tr? n¨ºn r?t quan tr?ng ??i v?i vi?c tr¨ªch xu?t d? li?u th¨¤nh c?ng.

Anh Tuan
17-Jan-2025