Pythonで2 Captchaとセレンを使用してrecaptchaをバイパスする方法
17434 ワード
彼らがセキュリティ目的のためにそこにいるとしても、彼らは本当に我々の時間を消費する傾向があります.
5分のフォームを充填し、あなたがその迷惑を得たので、再度フォームを充填を再起動する必要があります想像してみて😠 キャプチャ間違っています.
しかし、...解決策があります.2captcha
何がcaptchaのですか?
まず第一に、captchaは完全に自動化された公衆チューリングテストのためにコンピュータと人間を区別するために際立っている.それはあなたが人間や機械であるかどうかをテストするために取られるだけのテストです.Capchaのヘルプは、ウェブページのコメントで彼らの詐欺を促進する広告スパマーに対して防御する.すべてのユーザーがCAPTCHA認証を交渉するのを必要とすることによって、管理者は彼らの活動を自動化しようとするスパマーを除外することができます.
なぜ彼らは迷惑ですか?
まず第一に、彼らは素晴らしいですが、それはあなたのためにハードに解決するために人間を解決するために迷惑になる
2 captchaは何ですか?
2 captchaは、リアルタイムで多くのcaptchasを認識する必要がある顧客を接続するために作られています.一言で言えば、彼らはあなたのためにそれらの迷惑なcaptchaの解決に役立つ会社です.多くのCAPTCHA解決サービスが利用可能ですが、CAPTCHAを解決するのに非常に高速であるので、2 captchaはとても最高です.それは私がCAPTCHAを解決するために使用する主なツールであり、あなたがセレンを使用してPythonでcapthaのを解決するために2 capthaを使用する方法を示すつもりです.
2 captchaの使い方
あなたのためにCAPTCHAを解決するために2 captchaのために、それは若干のデータを必要とします.
だから、ここでどのように動作します. APIのエンドポイントにデータを送信します.
データは
The エンドポイントの誰かが詳細をキャプチャします captchaが解決されるまで、あなたはエンドポイントをポーリングし続けます 結果はあなたに返されます
CAPTCHAの2 CAPTCHAを使用してPythonで解決する方法
パッケージのインストール
まず最初に、Python言語をコンピュータにインストールする必要があります.次に、セレンパッケージをインストールします.セレンはウェブブラウザを自動化します、そして、それは我々がcaptchaを解決するのを助けるつもりです.
端末を開き、
それから、リクエストをインストールします.
インストールが完了したら、Chromeブラウザドライバをインストールする必要がありますdownload it here .
セレンを始める
次に、オプション変数はブラウザに余分なオプションを与えたい場合に便利です.例えば、インコグニートモードで起動します.
ブラウザ変数は、ブラウザインスタンスを作成します.The
コードを実行した後、このようなイメージを取得すると、すべてが正しく動作していることを意味します.
ページからデータを抽出する
私が以前言ったように、2 captchaがあなたのためにCAPTCHAを解決するために、若干の詳細を必要とします、そして、それらの詳細はcaptchaを含むページにあります.
The
The
The
データをエンドポイントに送信する
応答が「OK」に等しくないならば、我々は応答を待ちます、そして、それが我々がプログラムを閉じるように何かが間違っていたことを意味します
受信解決CAPTCHA
我々が彼らの終点に要請を送ったあと、我々は彼らが我々のcaptchaを解決し終えたかどうかチェックするために彼らのサーバーをポーリングし続けます.
ページに解決されたキャプチャを挿入する
それで、解決されたcaptchaを受けた後に、私たちは、セレンCapchaをページに挿入するためにセレンを使用するでしょう.
それ.
全コード
5分のフォームを充填し、あなたがその迷惑を得たので、再度フォームを充填を再起動する必要があります想像してみて😠 キャプチャ間違っています.
しかし、...解決策があります.2captcha
何がcaptchaのですか?
まず第一に、captchaは完全に自動化された公衆チューリングテストのためにコンピュータと人間を区別するために際立っている.それはあなたが人間や機械であるかどうかをテストするために取られるだけのテストです.Capchaのヘルプは、ウェブページのコメントで彼らの詐欺を促進する広告スパマーに対して防御する.すべてのユーザーがCAPTCHA認証を交渉するのを必要とすることによって、管理者は彼らの活動を自動化しようとするスパマーを除外することができます.
なぜ彼らは迷惑ですか?
まず第一に、彼らは素晴らしいですが、それはあなたのためにハードに解決するために人間を解決するために迷惑になる
2 captchaは何ですか?
2 captchaは、リアルタイムで多くのcaptchasを認識する必要がある顧客を接続するために作られています.一言で言えば、彼らはあなたのためにそれらの迷惑なcaptchaの解決に役立つ会社です.多くのCAPTCHA解決サービスが利用可能ですが、CAPTCHAを解決するのに非常に高速であるので、2 captchaはとても最高です.それは私がCAPTCHAを解決するために使用する主なツールであり、あなたがセレンを使用してPythonでcapthaのを解決するために2 capthaを使用する方法を示すつもりです.
2 captchaの使い方
あなたのためにCAPTCHAを解決するために2 captchaのために、それは若干のデータを必要とします.
だから、ここでどのように動作します.
データは
sitekey
, page url
, 2captcha key
and method
.The
sitekey
ページ上のCAPTCHAサービスを呼び出すために使用するコードが含まれます.The page url
catpchaを含むページのURLを参照します.The 2captcha key
2 captchaから取得したAPIキーとmethod
captchaを解決する方法を2 captchaに伝えます.CAPTCHAの2 CAPTCHAを使用してPythonで解決する方法
パッケージのインストール
まず最初に、Python言語をコンピュータにインストールする必要があります.次に、セレンパッケージをインストールします.セレンはウェブブラウザを自動化します、そして、それは我々がcaptchaを解決するのを助けるつもりです.
端末を開き、
pip install selenium
.それから、リクエストをインストールします.
pip install requests
) これにより、HTTPリクエストを2 captcha終了点にすることができます.インストールが完了したら、Chromeブラウザドライバをインストールする必要がありますdownload it here .
セレンを始める
from selenium import webdriver
driver_path = "C:\\Program Files (x86)\\chromedriver_win32\\chromedriver.exe"
brave_path = "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe"
option = webdriver.ChromeOptions()
option.binary_location = brave_path
browser = webdriver.Chrome(executable_path=driver_path, chrome_options=option)
browser.get("https://www.google.com/recaptcha/api2/demo")
したがって、上記のスニペットでは、Webドライバをセレンからインポートします.The driver_path
and brave_path
変数は、Chromeドライバファイルとブレイブブラウザファイルへのパスを保持します.次に、オプション変数はブラウザに余分なオプションを与えたい場合に便利です.例えば、インコグニートモードで起動します.
ブラウザ変数は、ブラウザインスタンスを作成します.The
browser.get
関数は、我々が解決しようとしているキャプチャを含むページでブラウザを開きます.コードを実行した後、このようなイメージを取得すると、すべてが正しく動作していることを意味します.
ページからデータを抽出する
私が以前言ったように、2 captchaがあなたのためにCAPTCHAを解決するために、若干の詳細を必要とします、そして、それらの詳細はcaptchaを含むページにあります.
site_key_element = browser.find_element_by_css_selector('[data-sitekey]')
site_key = site_key_element.get_attribute("data-sitekey")
page_url = "https://www.google.com/recaptcha/api2/demo"
method = "userrecaptcha"
key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
The site key
属性“data sitekey”を持つ要素に含まれているので、属性を含む要素を最初に見つけます.次に、site key
要素からの値.The
page_url
はcaptchaを含むページのURLです.The
method
captchaタイプがrecaptchaであると2 capthaに話します.The
key
あなたが彼らのサービスのためにサインアップするならば、2 captchaから得られます.データをエンドポイントに送信する
import requests
url = "http://2captcha.com/in.php?key={}&method={}&googlekey={}&pageurl={}".format(key,method,site_key,page_url)
response = requests.get(url)
if response.text[0:2] != 'OK':
quit('Service error. Error code:' + response.text)
captcha_id = response.text[3:]
サーバへのリクエストを行うには、Pythonを使用しますrequests
モジュールです.そこでリクエストモジュールをインポートし、リクエストをurl
どちらが作成されました.応答が「OK」に等しくないならば、我々は応答を待ちます、そして、それが我々がプログラムを閉じるように何かが間違っていたことを意味します
capthca_id
反応から.受信解決CAPTCHA
我々が彼らの終点に要請を送ったあと、我々は彼らが我々のcaptchaを解決し終えたかどうかチェックするために彼らのサーバーをポーリングし続けます.
import time
token_url = "http://2captcha.com/res.php?key={}&action=get&id={}".format(key,captcha_id)
while True:
time.sleep(10)
response = requests.get(fetch_url)
if resp.text[0:2] == 'OK':
break
要求を提出した後に、我々は我々のcaptchaが解決されるかどうかチェックするために我々が使うcaptcha idを与えられます.それが送られるならば、CAPTCHAが解決されないので、我々はwhileループを使う必要があります.ループの中で、10秒待ってリクエストをする.レスポンスが「OK」なら、captchaが解決されたので、ループを中断します.ページに解決されたキャプチャを挿入する
それで、解決されたcaptchaを受けた後に、私たちは、セレンCapchaをページに挿入するためにセレンを使用するでしょう.
captha_results = response.text[3:]
browser.execute_script("""document.querySelector('[name="g-recaptcha-response"]').innerText='{}'""".format(captha_results))
browser.find_element_by_css_selector('[id="recaptcha-demo-submit"]').click()
そこで、解決されたcaptchaを抽出した後、Seleniumを使用して、コードをフォームに挿入して送信するJavaScriptを実行しますそれ.
全コード
from selenium import webdriver
import requests
import time
driver_path = r"C:\\Program Files (x86)\\chromedriver_win32\\chromedriver.exe"
brave_path = r"C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe"
option = webdriver.ChromeOptions()
option.binary_location = brave_path
browser = webdriver.Chrome(executable_path=driver_path, options=option)
browser.get("https://www.google.com/recaptcha/api2/demo")
site_key_element = browser.find_element_by_css_selector('[data-sitekey]')
site_key = site_key_element.get_attribute("data-sitekey")
page_url = "https://www.google.com/recaptcha/api2/demo"
method = "userrecaptcha"
key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
url = "http://2captcha.com/in.php?key={}&method={}&googlekey={}&pageurl={}".format(key,method,site_key,page_url)
response = requests.get(url)
if response.text[0:2] != 'OK':
quit('Service error. Error code:' + response.text)
captcha_id = response.text[3:]
token_url = "http://2captcha.com/res.php?key={}&action=get&id={}".format(key,captcha_id)
while True:
time.sleep(10)
response = requests.get(fetch_url)
if response.text[0:2] == 'OK':
break
captha_results = response.text[3:]
browser.execute_script("""document.querySelector('[name="g-recaptcha-response"]').innerText='{}'""".format(captha_results))
browser.find_element_by_css_selector('[id="recaptcha-demo-submit"]').click()
Reference
この問題について(Pythonで2 Captchaとセレンを使用してrecaptchaをバイパスする方法), 我々は、より多くの情報をここで見つけました https://dev.to/kudadam/how-to-bypass-recaptcha-using-2captcha-and-selenium-in-python-251gテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol