Source Code - 【❤️SOLVE GOOGLE AUDIO CAPTCHA WITH PYTHON❤️】 | Web Scripts | Crax

Welcome To Crax.Pro Forum!

Check our new Marketplace at Crax.Shop

   Login! SignUp Now!

Source Code 【❤️SOLVE GOOGLE AUDIO CAPTCHA WITH PYTHON❤️】

Source Code 【❤️SOLVE GOOGLE AUDIO CAPTCHA WITH PYTHON❤️】

LV
4
 

ZOAX

Member
Joined
May 9, 2024
Threads
1,743
Likes
10
Awards
9
Credits
18,515©
Cash
0$
  1. import time, traceback, sys
  2. import requests
  3. import speech_recognition as sr
  4. from random import uniform
  5. from moviepy.editor import AudioFileClip
  6. from selenium.webdriver.support.ui import WebDriverWait
  7. from selenium.webdriver.support import expected_conditions as EC
  8. from selenium.webdriver.common.by import By
  9. """
  10. You have to have this dependencies installed:
  11. /* pip install speech_recognition, moviepy, undetected-chromedriver */ (undetected-chrodriver is a selenium-based framework with few anti-detect features)
  12. """
  13. def solve_via_audio(self, wait: WebDriverWait):
  14. # self and wait are Selenium objects that are supposed to be created before the function
  15. # 1. GETTING RECAPTCHA IFRAME IN PAGE's HTML
  16. RECAPTCHA_MAIN_FRAME = wait.until(
  17. EC.presence_of_element_located((By.ID, "recaptcha-iframe"))
  18. )
  19. self.driver.switch_to.frame(RECAPTCHA_MAIN_FRAME)
  20. print("RECAPTCHA_MAIN_FRAME OK")
  21. # 2. GETTING RECAPTCHA CHILD IFRAME IN PAGE's HTML (it is kinda wrapped in multiple layers)
  22. RECAPTCHA_CHILD_FRAME = wait.until(
  23. EC.presence_of_element_located((By.CSS_SELECTOR, 'iframe[title="reCAPTCHA"]'))
  24. )
  25. self.driver.switch_to.frame(RECAPTCHA_CHILD_FRAME)
  26. print("RECAPTCHA_CHILD_FRAME OK")
  27. # 3. CLICK BUTTON THAT WE WANT TO SOLVE AUDIO CAPTCHA INSTEAD A PUZZLE ONE
  28. recaptcha_anchor = wait.until(
  29. EC.presence_of_element_located((By.ID, "recaptcha-anchor"))
  30. )
  31. recaptcha_anchor.click()
  32. print("recaptcha_anchor OK")
  33. time.sleep(uniform(0.231, 0.836))
  34. # 4. THEN WE HAVE TO SWTICH BACK TO ROOT CAPTCHA IFRAME
  35. self.driver.switch_to.default_content()
  36. self.driver.switch_to.frame(RECAPTCHA_MAIN_FRAME)
  37. # 5. SWITCH TO FRAME WHERE THAT NEW APPEARED AUDIO CAPTCHA LOCATED
  38. RECAPTCHA_CHILD_2_FRAME = wait.until(
  39. EC.presence_of_element_located((By.CSS_SELECTOR, 'iframe[src*="https://www.google.com/recaptcha/api2/bframe"]'))
  40. )
  41. self.driver.switch_to.frame(RECAPTCHA_CHILD_2_FRAME)
  42. print("RECAPTCHA_CHILD_2_FRAME OK")
  43. # 6. CLICK AUDIO CAPTCHA BUTTON
  44. audio_button = wait.until(
  45. EC.presence_of_element_located((By.ID, "recaptcha-audio-button"))
  46. )
  47. audio_button.click()
  48. time.sleep(uniform(0.231, 0.836))
  49. # 7. EXTRACT A LINK WITH ORIGINAL CAPTCHA AUDIO FILE
  50. download_link = wait.until(
  51. EC.presence_of_element_located((By.CSS_SELECTOR, 'a.rc-audiochallenge-tdownload-link'))
  52. )
  53. audio_url = download_link.get_attribute('href')
  54. headers = {
  55. "user-agent": self.ua
  56. }
  57. # 7. DOWNLOAD THAT FKNG AUDIO
  58. response = requests.get(audio_url, headers=headers)
  59. if response.status_code == 200:
  60. AUDIO_FILE = "audio.mp3"
  61. AUDIO_FILE_WAV = "audio.wav"
  62. # 8. SAVE AS MP3
  63. with open(AUDIO_FILE, "wb") as f:
  64. f.write(response.content)
  65. # 9. CONVERT MP3 to WAV
  66. with AudioFileClip(AUDIO_FILE, fps=44100) as snd: # from a numeric array
  67. snd.write_audiofile(AUDIO_FILE_WAV)
  68. recognizer = sr.Recognizer()
  69. try:
  70. with sr.AudioFile(AUDIO_FILE_WAV) as source:
  71. audio_data = recognizer.record(source)
  72. # 10. RECOGNIZE TEXT
  73. text = recognizer.recognize_google(audio_data)
  74. print('Transcribed text: ', text)
  75. except Exception as e:
  76. traceback.print_exc()
  77. print(e)
  78. sys.exit()
  79. else:
  80. print('Failed to download the audio file.')
  81. # 11. NOW PUT THE TEXT IN THE CAPTCHA FORM
  82. input_text = self.driver.find_element(By.ID, "audio-response")
  83. input_text.send_keys(text)
  84. time.sleep(uniform(0.231, 0.836))
  85. # 12. CLICK VERIFY BUTTON
  86. verify_button = self.driver.find_element(By.ID, "recaptcha-verify-button")
  87. verify_button.click()
  88. time.sleep(uniform(0.231, 0.836))
 

Create an account or login to comment

You must be a member in order to leave a comment

Create account

Create an account on our community. It's easy!

Log in

Already have an account? Log in here.

Top Bottom