Ich denke, die größte Schwierigkeit bei der Automatisierung von Scraping- und Browser-Vorgängen besteht darin, verschiedene Captures zu durchbrechen. Erstens ist die Erfassungsfunktion installiert, weil sie nicht vom Roboter bedient wird. Ich frage mich also, was passiert, wenn ich versuche, sie zu durchbrechen, aber es gibt immer noch Zeiten, in denen ich etwas dagegen tun möchte. In einem solchen Fall gibt es einen Dienst namens "** 2 Captcha **" als Lösung.
Ich habe kürzlich von diesem Dienst erfahren und versucht, ihn zu verwenden, und es war so einfach, die Erfassung zu durchbrechen. Deshalb werde ich ihn hier vorstellen.
Es ist ein Service, um die Erfassungsfunktion eines russischen Unternehmens zu durchbrechen. 2 Mit der Captcha-API kann der Erfassungsprozess automatisiert werden. Obwohl es sich um einen kostenpflichtigen Dienst handelt, beträgt die Gebühr für eine API-Anfrage etwa 0,3 Yen, daher halte ich sie für ausreichend günstig.
Mit einem Dienst namens 2Captcha können Sie die schwierige Erfassungsfunktion mit überwältigender menschlicher Meerestaktik durchbrechen. Wenn der Benutzer die Informationen der Erfassung sendet, die er mithilfe der API von 2Captcha abbrechen möchte, storniert eine große Anzahl von Mitarbeitern die Erfassung irgendwo und gibt die erforderlichen Informationen zurück.
2Captcha bietet Bibliotheken in mehreren Programmiersprachen, um die API einfacher verwenden zu können.
Gehen Sie zu https://2captcha.com/
Registrieren Sie Ihr Konto über die Schaltfläche "Registrierung" oben rechts.
Stellen Sie Ihre E-Mail-Adresse und Ihr Passwort ein und die Registrierung ist abgeschlossen.
Wenn Sie sich anmelden, wird die folgende Seite angezeigt.
Leider ist 2Captcha nicht kostenlos verfügbar. Machen Sie nach dem Anmelden eine Einzahlung über "Guthaben hinzufügen" oben auf dem Bildschirm.
Wählen Sie einen verfügbaren Zahlungsdienst und legen Sie den Betrag fest. Ich habe mit PayPal bezahlt.
Lassen Sie uns vorerst die Mindesteinzahlung von 3 $ einzahlen.
Wenn die Zahlung abgeschlossen ist, sollte sich die ursprüngliche Bildschirmanzeige auf 3 $ ändern. (Es scheint, dass es je nach Zahlungsmethode einige Zeit dauern kann.)
Nach dem Anmelden wird der API-Schlüssel in der Mitte des Bildschirms angezeigt. 2 Erstellen Sie eine Kopie, die für die Verwendung von Captcha erforderlich ist.
Lassen Sie uns reCAPTCHA v2 mit Python durchbrechen.
Ein Paket für Python ist verfügbar, installieren Sie es also zuerst.
pip install 2captcha-python
Darüber hinaus behandelt der folgende Test Headless Chrome mit Selen. Informationen zur Herstellung von Selnium finden Sie in diesem Artikel.
Dieses Mal möchte ich 2Captcha mit dieser Demoseite testen. https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php
import traceback
import chromedriver_binary
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from twocaptcha import TwoCaptcha
solver = TwoCaptcha('YOUR_API_KEY') #Bitte legen Sie Ihren eigenen API-Schlüssel fest
url = 'https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php'
def main():
#Starten Sie den Browser
options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
try:
#Seitenzugriff
driver.get(url)
# data-Ruft den Wert des Sitekey-Attributs ab
data_sitekey = driver.find_element_by_css_selector('[data-sitekey]').get_attribute('data-sitekey')
#2 Holen Sie sich den Freischaltcode mit Captcha
response = solver.recaptcha(sitekey=data_sitekey, url=url)
code = response['code']
#Geben Sie den Freischaltcode in das angegebene Textfeld ein
textarea = driver.find_element_by_id('g-recaptcha-response')
driver.execute_script(f'arguments[0].value = "{code}";', textarea)
#Klicken Sie auf die Schaltfläche
driver.find_element_by_css_selector('button[type="submit"]').click()
#Ergebnisanzeige(Erfolg:"Success!",Fehler:"Something went wrong")
result = driver.find_element_by_css_selector('body>main>h2:nth-child(3)').text
print(result)
except BaseException:
print(traceback.format_exc())
driver.quit()
if __name__ == '__main__':
main()
Ausführungsergebnis: Erfolg!
Die Reaktion von 2Captcha dauerte ungefähr 5 bis 20 Sekunden, aber es hat sicherlich reCAPTCHA durchbrochen.
Was haben Sie gedacht. Dieses Mal habe ich versucht, Googles reCAPTCHA v2 zu durchbrechen, aber es scheint, dass es auch reCAPTCHA v3 und andere Erfassungsfunktionen als Google unterstützt. Der Engpass ist, dass es ein wenig Geld kostet, aber es scheint nützlich zu sein, es als Option zu haben, wenn es absolut notwendig ist.