diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml new file mode 100644 index 0000000..0f03be4 --- /dev/null +++ b/.github/workflows/publish-to-pypi.yml @@ -0,0 +1,34 @@ +name: Publish to PyPI + +on: + push: + tags: + - 'v*.*.*' # Workflow start when you push tag in folovings format: v1.0.0 + +jobs: + build-and-publish: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.6' # Python version + + - name: Upgrade pip + run: pip install --upgrade pip + + - name: Install build dependencies + run: pip install build + + - name: Build the package + run: python -m build --sdist --wheel + + - name: Publish to PyPI via Twine + env: + PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }} + run: | + pip install twine + twine upload dist/* -u __token__ -p $PYPI_API_TOKEN \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..78c57eb --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,43 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and maintainers pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy toward other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email address, without their explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies within all project spaces, both public and private, when an individual is representing the project or its community in any way. + +Examples of representing a project or community include using an official project email address, posting via an official social media account, or acting as an appointed representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at info@solvecaptcha.com. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. + +If you have any questions or suggestions about this Code of Conduct, feel free to reach out to the project team. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..b183dae --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,72 @@ +# Contributing to solvecaptcha-python + +Thank you for considering contributing to the solvecaptcha-python! By contributing, you're helping improve the project and enabling others to benefit from your improvements. + +Here are a few guidelines to help you get started. + +## How to Contribute + +1. **Fork the repository** + If you'd like to contribute, please start by forking the project and cloning it to your local machine. + + ```bash + git clone https://github.com/solvercaptcha/solvecaptcha-python.git + ``` + +2. **Create a new branch** + Create a new branch for your feature or bug fix. This will help keep your changes separate from the main codebase. + + ```bash + git checkout -b my-feature-branch + ``` + +3. **Make your changes** + Modify the code or documentation as needed. Make sure to follow the project's coding style and conventions. + +4. **Test your changes** + Ensure that your changes work as expected and do not break anything in the project. If applicable, write tests to cover your changes. + +5. **Commit your changes** + After you've made your changes, commit them with a meaningful message describing what you've done. + + ```bash + git commit -m "Add feature X to bypass challenge" + ``` + +6. **Push your changes** + Push your changes to your forked repository. + + ```bash + git push origin my-feature-branch + ``` + +7. **Submit a pull request** + Navigate to the original repository and submit a pull request. Describe the changes you've made and why they're important. + + We will review your pull request and get back to you as soon as possible! + +## Reporting Issues + +If you find any bugs or issues with the project, feel free to open an issue in the **Issues** tab. When reporting an issue, please provide the following information: + +- A detailed description of the issue. +- Steps to reproduce the issue. +- Any relevant error messages or logs. + +## Code of Conduct + +By contributing to this project, you agree to abide by our [Code of Conduct](./CODE_OF_CONDUCT.md). Please be respectful and considerate to other contributors. + +## Types of Contributions + +Here are some ways you can contribute to the project: + +- **Bug Fixes**: If you find a bug, feel free to submit a pull request with a fix. +- **Feature Requests**: Have a great idea for a new feature? Open an issue to discuss it! +- **Documentation**: Help improve the documentation or add new guides to make the project more accessible to others. +- **Tests**: Ensure that the project is thoroughly tested and improve the test coverage. +- **Code Refactoring**: Help improve the project codebase by refactoring or optimizing the code. + +## Thank You! + +Your contributions are greatly appreciated! Together, we can make this project even better for everyone. diff --git a/README.md b/README.md index 7abd1e6..ce5a6fa 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,39 @@ A simple and efficient method to integrate the [Solvecaptcha] captcha-solving service into your code, enabling the automation of solving various types of captchas. Examples of API requests for different captcha types can be found on the [Python captcha solver](https://solvecaptcha.com/captcha-solver/python-captcha-solver-bypass) page. +## ✅ Supported captcha solvers +To get started quickly, check out the [Captcha Solver API](https://solvecaptcha.com/captcha-solver-api) documentation. + +### Helpful links: +- [reCAPTCHA v2 solver (Python + Selenium)](https://solvecaptcha.com/captcha-solver/recaptcha-v2-solver-bypass) +- [reCAPTCHA v3 solver](https://solvecaptcha.com/captcha-solver/recaptcha-v3-solver-bypass) +- [hCaptcha solver (Playwright-ready)](https://solvecaptcha.com/captcha-solver/hcaptcha-solver-bypass) +- [Text & Image captcha solver (Base64 / file input)]() +- [Cloudflare captcha / Turnstile solver](https://solvecaptcha.com/captcha-solver/cloudflare-captcha-solver-bypass) +- [Amazon captcha (WAF & login forms)](https://solvecaptcha.com/captcha-solver/amazon-captcha-solver-bypass) +- [GeeTest slider solver](https://solvecaptcha.com/captcha-solver/slider-captcha-solver-bypass) +- [FunCaptcha (Arkose Labs)](https://solvecaptcha.com/captcha-solver/funcaptcha-solver-bypass) +- [Other custom captcha types](https://solvecaptcha.com/) + +## 🛠️ Features +- Fast and fully automated captcha bypass +- Works in **Python** environments +- Compatible with **Selenium**, **Playwright**, and other browser automation tools +- Lightweight SDK with modern **async/await** support +- Pay only for successful solves +- 99.9% uptime +- 24/7 support for developers and integration teams + +## 📦 Use cases + +- Web scraping behind reCAPTCHA or Cloudflare walls +- Automated form submission and login flows +- QA pipelines and headless browser testing +- Bypassing captchas in research or bot-detection evaluation +- Custom browser automations using Python + +Need help integrating with your Python app or automation tools? [Open an issue](https://github.com/solvercaptcha/solvecaptcha-python/issues) or fork this repo to contribute. + - [Python Library for Interacting with the Solvecaptcha API](#python-library-for-interacting-with-the-solvecaptcha-api-captcha-solving-service) - [Installation](#installation) - [Configuration](#configuration) @@ -24,6 +57,7 @@ Examples of API requests for different captcha types can be found on the [Python - [Text Captcha](#text-captcha) - [reCAPTCHA v2](#recaptcha-v2) - [reCAPTCHA v3](#recaptcha-v3) + - [hCaptcha](#hcaptcha) - [FunCaptcha](#funcaptcha) - [GeeTest](#geetest) - [GeeTest v4](#geetest-v4) @@ -40,7 +74,7 @@ Examples of API requests for different captcha types can be found on the [Python - [Proxies](#proxies) - [Async calls](#async-calls) - [Examples](#examples) - + - [Examples using Selenium](#examples-using-selenium) - [Useful articles](#useful-articles) - [Get in touch](#get-in-touch) - [License](#license) @@ -173,6 +207,24 @@ result = solver.recaptcha(sitekey='6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-', param1=..., ...) ``` +### hCaptcha + +[API method description.](https://solvecaptcha.com/captcha-solver-api#solving_hcaptcha) + +Use the following method to solve hCaptcha and retrieve a token for bypassing the protection. + +```python +result = solver.hcaptcha(sitekey='bf8ccfbf-6a05-45f6-982a-7a7964c2f50c', + url='https://portalunico.siscomex.gov.br', + invisible=0, + domain='hcaptcha.com', + # proxy={ + # 'type': 'HTTPS', + # 'uri': 'login:password@IP_address:PORT' + # } + ) +``` + ### FunCaptcha [API method description.](https://solvecaptcha.com/captcha-solver-api#solving_funcaptcha_new) @@ -387,9 +439,10 @@ captcha_result = asyncio.run(captchaSolver(image)) Examples of solving all supported captcha types can be found in the [examples] directory. - +We also have a separate repository where you can find examples of captcha solving using the [Selenium](https://pypi.org/project/selenium/) \ [seleniumbase](https://seleniumbase.io/) library. +- [Python hCaptcha Solver: Bypass hCaptcha with Proxy using Selenium and SolveCaptcha SDK](https://github.com/solvercaptcha/hcaptcha-solver-seleniumbase-python) ## Useful articles diff --git a/solvecaptcha/__init__.py b/solvecaptcha/__init__.py index 695e25a..59040c6 100644 --- a/solvecaptcha/__init__.py +++ b/solvecaptcha/__init__.py @@ -12,4 +12,4 @@ """ __author__ = 'SolveCaptcha' -__version__ = '1.0.0' +__version__ = '1.0.1'