CAPTCHAの処理
A-Parserでの作業やキャプチャ解決のために、以下のスクレイパーを使用してキャプチャ解決サービスへキャプチャを送信できる専用メソッドが実装されています:
Util::AntiGate - 文字、数字、単語が書かれた画像形式のキャプチャを解決します
Util::ReCaptcha2 - Google ReCaptcha v2を解決します
Util::ReCaptcha3 - Google ReCaptcha v3を解決します
Util::hCaptcha - hCaptchaを解決します
Util::Turnstile - Cloudflare Turnstileを解決します
また、await this.parser.request() メソッドを使用しても簡単にCAPTCHAを解決できます。
例えば、Google ReCaptcha v2 に対してこのメソッドを呼び出す場合は以下のようになります:
await this.parser.request('Util::ReCaptcha2', this.conf.Util_ReCaptcha2_preset, {}, siteKey + ' ' + endPoint);
詳細は、カタログの例 cyren.comサービスを通じたサイトカテゴリの確認 で確認できます。
CAPTCHA bypass (キャプチャの回避)についての詳細
await this.captcha.*
キャプチャの操作
.recognize(preset, image, type[, overrides])
await this.captcha.recognize(preset, image, type, overrides) - 認識のためにキャプチャをアップロードします
image- 認識する画像のバイナリデータpreset-
Util::AntiGate のプリセットを指定しますtypeは 'jpeg', 'gif', 'png' のいずれかを指定します
結果は以下のフィールドを持つハッシュになります:
answer- 画像からのテキストid- キャプチャID。後で.reportBadを通じてエラーを報告するために使用しますerror- answer が設定されていない場合のテキストエラー
.recognizeFromUrl(preset, url[, overrides])
await this.captcha.recognizeFromUrl(preset, url, overrides) - 前述のメソッドと同様ですが、プロキシを使用せずにリンク (url) から自動的にキャプチャを読み込みます
.reportBad(preset, id[, overrides])
await this.captcha.reportBad(preset, id, overrides) - キャプチャが正しく解決されなかったことをサービスに報告します
関連リンク
🔗 ⏩ JSスクレイパーの作成。CAPTCHAへの対応
ページ上のキャプチャを解決するためのAntiGateサポートを含む、JSスクレイパーの作成方法に関する動画
🔗 JSスクレイパーの作成。CAPTCHAへの対応
ページ上のキャプチャを解決するためのAntiGateサポートを含む、JSスクレイパーの作成方法に関する記事
🔗 cyren.comサービスを通じたサイトカテゴリの確認
JSスクレイパーにおけるUtil::ReCaptcha2の接続実装例