How to solve image captcha with Python

Ethan Collins
Pattern Recognition Specialist
21-Sep-2023

⚙️ Prerequisites
- Python installed
- Capsolver API key
🤖 Step 1: Install Necessary Packages
Execute the following commands to install the required packages:
python
pip install capsolver
👨💻 Python Code for solve image captcha
Here's a Python sample script to accomplish the task:
python
import capsolver
import base64
from io import BytesIO
# Change to your key
capsolver.api_key = "Your Key"
## The image in base64
def to_base64(image_location, is_url=True):
try:
if is_url:
response = requests.get(image_location)
if response.status_code == 200:
image_bytes = BytesIO(response.content)
else:
return "Unable to fetch image. Status code: " + str(response.status_code)
else:
with open(image_location, 'rb') as image_file:
image_bytes = BytesIO(image_file.read())
base64_string = base64.b64encode(image_bytes.read()).decode('utf-8')
return base64_string
except Exception as e:
return str(e)
def solve_imagecaptcha(module, base64Image):
solution = capsolver.solve({
"type": "ImageToTextTask",
"module": module,
"body": base64Image
})
return solution
def main():
imageBase64 = "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"
## Variable with the base64 image directly
print("Solving imageCaptcha with base64 image...")
solution = solve_imagecaptcha(module="queueit", base64Image=imageBase64 )
print("Solution: ", solution)
## Variable with the image URL and convert it to base64
# imageUrl = "https://www.google.com/recaptcha/api2/demo"
# imageUrlBase64 = to_base64(imageUrl, is_url=True)
# print("Solving imageCaptcha with base64 image...")
# solution = solve_imagecaptcha(module="queueit", base64Image=imageUrlBase64 )
# print("Solution: ", solution)
## Variable with the image PATH and convert it to base64
# imagePath = "image.jpg"
# imagePathBase64 = to_base64(imageUrl, is_url=False)
# print("Solving imageCaptcha with base64 image...")
# solution = solve_imagecaptcha(module="queueit", base64Image=imagePathBase64 )
# print("Solution: ", solution)
if __name__ == "__main__":
main()
⚠️ Change these variables
- capsolver.api_key: Obtain your API key from the Capsolver Dashboard.
👀 More information
Compliance Disclaimer: The information provided on this blog is for informational purposes only. CapSolver is committed to compliance with all applicable laws and regulations. The use of the CapSolver network for illegal, fraudulent, or abusive activities is strictly prohibited and will be investigated. Our captcha-solving solutions enhance user experience while ensuring 100% compliance in helping solve captcha difficulties during public data crawling. We encourage responsible use of our services. For more information, please visit our Terms of Service and Privacy Policy.
More

How to Solve CAPTCHA with Selenium and Node.js when Scraping
If you’re facing continuous CAPTCHA issues in your scraping efforts, consider using some tools and their advanced technology to ensure you have a reliable solution

Lucas Mitchell
15-Oct-2024

Solving 403 Forbidden Errors When Crawling Websites with Python
Learn how to overcome 403 Forbidden errors when crawling websites with Python. This guide covers IP rotation, user-agent spoofing, request throttling, authentication handling, and using headless browsers to bypass access restrictions and continue web scraping successfully.

Sora Fujimoto
01-Aug-2024

How to Use Selenium Driverless for Efficient Web Scraping
Learn how to use Selenium Driverless for efficient web scraping. This guide provides step-by-step instructions on setting up your environment, writing your first Selenium Driverless script, and handling dynamic content. Streamline your web scraping tasks by avoiding the complexities of traditional WebDriver management, making your data extraction process simpler, faster, and more portable.

Lucas Mitchell
01-Aug-2024

Scrapy vs. Selenium: What's Best for Your Web Scraping Project
Discover the strengths and differences between Scrapy and Selenium for web scraping. Learn which tool suits your project best and how to handle challenges like CAPTCHAs.

Ethan Collins
24-Jul-2024

API vs Scraping : the best way to obtain the data
Understand the differences, pros, and cons of Web Scraping and API Scraping to choose the best data collection method. Explore CapSolver for bot challenge solutions.

Ethan Collins
15-Jul-2024

How to solve CAPTCHA With Selenium C#
At the end of this tutorial, you'll have a solid understanding of How to solve CAPTCHA With Selenium C#

Rajinder Singh
10-Jul-2024