Pure Python, lightweight, Pillow-based solver for the Amazon's text captcha.
Project description
The motivation behind the creation of this library is taking its start from the genuinely simple idea: "I don't want to use pytesseract or some other non-amazon-specific OCR services, nor do I want to install some executables to just solve a captcha. I desire to get a solution within 1-2 lines of code without any heavy add-ons, using a pure Python."
Pure Python, lightweight, Pillow-based solver for Amazon's text captcha.
Installation
pip install amazoncaptcha
Quick Snippet
from amazoncaptcha import AmazonCaptcha
captcha = AmazonCaptcha('captcha.jpg')
solution = captcha.solve()
# Or: solution = AmazonCaptcha('captcha.jpg').solve()
Status
Usage
Browsing Amazon using selenium
and stuck on captcha? The class method below will do all the "dirty" work of extracting an image from the webpage for you. Practically, it takes a screenshot from your webdriver, crops the captcha, and stores it into bytes array, which is then used to create an AmazonCaptcha
instance. This also means avoiding any local savings.
from amazoncaptcha import AmazonCaptcha
from selenium import webdriver
driver = webdriver.Chrome() # This is a simplified example
driver.get('https://www.amazon.com/errors/validateCaptcha')
captcha = AmazonCaptcha.fromdriver(driver)
solution = captcha.solve()
If you are not using selenium
or the previous method is not just the case for you, it is possible to use a captcha link directly. This class method will request the url, check the content type and store the response content into bytes array to create an instance of AmazonCaptcha
.
from amazoncaptcha import AmazonCaptcha
link = 'https://images-na.ssl-images-amazon.com/captcha/usvmgloq/Captcha_kwrrnqwkph.jpg'
captcha = AmazonCaptcha.fromlink(link)
solution = captcha.solve()
In addition, if you are a machine learning or neural network developer and are looking for some training data, check this repository, which was created to store images and other non-script data for the solver.
Help the Development
If you are willing to help the development, consider setting keep_logs
argument of the solve
method to True
. Here is the example, if you are using fromdriver
class method. If set to True
, all the links of the unsolved captcha will be stored, so later you can open the issue and send the logs.
from amazoncaptcha import AmazonCaptcha
from selenium import webdriver
driver = webdriver.Chrome() # This is a simplified example
driver.get('https://www.amazon.com/errors/validateCaptcha')
captcha = AmazonCaptcha.fromdriver(driver)
solution = captcha.solve(keep_logs=True)
If you have any suggestions or ideas of additional instances and methods, which you would like to see in this library, please, feel free to contact the owner via email or fork'n'pull to repository. Any contribution is highly appreciated!
Additional
- Just FYI,
pip
will install only the module itself. However, if you are usinggit clone
, be aware that you will also clone 50 MB of captchas currently located in the repository. - If you want to see the History of Changes, Code of Conduct, Contributing Policy, or License, use these inline links to navigate based on your needs.
- If you are facing any errors, please, report your situation via an issue.
- This project is for educational and research purposes only. Any actions and/or activities related to the material contained on this GitHub Repository is solely your responsibility. The author will not be held responsible in the event any criminal charges be brought against any individuals misusing the information in this GitHub Repository to break the law.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for amazoncaptcha-0.4.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3230ed4138961d65332a65d543b3dd099634e03cafe110cd68b80f2313e7937a |
|
MD5 | 427bda15455fc7a26332ce8c83f1b2f9 |
|
BLAKE2b-256 | 6c5685c924a62c31defd03ee7be64a5440f0d92423f266b577bf2b5dcbd81ef4 |