1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
|
Metadata-Version: 2.1
Name: python-anticaptcha
Version: 1.0.0
Summary: Client library for solve captchas with Anticaptcha.com support.
Home-page: https://github.com/ad-m/python-anticaptcha
Author: Adam Dobrawy
Author-email: anticaptcha@jawnosc.tk
License: MIT
Keywords: recaptcha captcha development
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
License-File: LICENSE.md
Requires-Dist: requests
Requires-Dist: six
Provides-Extra: docs
Requires-Dist: sphinx ; extra == 'docs'
Provides-Extra: tests
Requires-Dist: retry ; extra == 'tests'
Requires-Dist: nose2 ; extra == 'tests'
Requires-Dist: selenium ; extra == 'tests'
python-anticaptcha
==================
.. image:: https://github.com/ad-m/python-anticaptcha/workflows/Python%20package/badge.svg
:target: https://github.com/ad-m/python-anticaptcha/actions?workflow=Python+package
.. image:: https://img.shields.io/pypi/v/python-anticaptcha.svg
:target: https://pypi.org/project/python-anticaptcha/
:alt: Python package
.. image:: https://badges.gitter.im/python-anticaptcha/Lobby.svg
:target: https://gitter.im/python-anticaptcha/Lobby?utm_source=share-link&utm_medium=link&utm_campaign=share-link
:alt: Join the chat at https://gitter.im/python-anticaptcha/Lobby
.. image:: https://img.shields.io/pypi/pyversions/python-anticaptcha.svg
:target: https://github.com/ad-m/python-anticaptcha/blob/master/setup.py
:alt: Python compatibility
.. introduction-start
Client library for solve captchas with `Anticaptcha.com support`_.
The library supports both Python 2.7 and Python 3.
The library is cyclically and automatically tested for proper operation. We are constantly making the best efforts for its effective operation.
In case of any problems with integration - `read the documentation`_, `create an issue`_, use `Gitter`_ or contact privately.
.. _read the documentation: http://python-anticaptcha.readthedocs.io/en/latest/
.. _Anticaptcha.com support: http://getcaptchasolution.com/i1hvnzdymd
.. _create an issue: https://github.com/ad-m/python-anticaptcha/issues/new
.. _Gitter: https://gitter.im/python-anticaptcha/Lobby
.. introduction-end
Getting Started
---------------
.. getting-started-start
Install as standard Python package using::
pip install python-anticaptcha
.. getting-started-end
Usage
-----
.. usage-start
To use this library do you need `Anticaptcha.com`_ API key.
Solve recaptcha
###############
Example snippet for Recaptcha:
.. code:: python
from python_anticaptcha import AnticaptchaClient, NoCaptchaTaskProxylessTask
api_key = '174faff8fbc769e94a5862391ecfd010'
site_key = '6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-' # grab from site
url = 'https://www.google.com/recaptcha/api2/demo'
client = AnticaptchaClient(api_key)
task = NoCaptchaTaskProxylessTask(url, site_key)
job = client.createTask(task)
job.join()
print job.get_solution_response()
The full integration example is available in file ``examples/recaptcha.py``.
If you only process few page many times to increase reliability, you can specify
whether the captcha is visible or not. This parameter is not required, as is the
system detects invisible sitekeys automatically, and needs several recursive
measures for automated training and analysis. For provide that pass
``is_invisible`` parameter to ``NoCaptchaTaskProxylessTask`` or ``NoCaptchaTask`` eg.:
.. code:: python
from python_anticaptcha import AnticaptchaClient, NoCaptchaTaskProxylessTask
api_key = '174faff8fbc769e94a5862391ecfd010'
site_key = '6Lc-0DYUAAAAAOPM3RGobCfKjIE5STmzvZfHbbNx' # grab from site
url = 'https://losangeles.craigslist.org/lac/kid/d/housekeeper-sitting-pet-care/6720136191.html'
client = AnticaptchaClient(api_key)
task = NoCaptchaTaskProxylessTask(url, site_key, is_invisible=True)
job = client.createTask(task)
job.join()
print job.get_solution_response()
Solve text captcha
##################
Example snippet for text captcha:
.. code:: python
from python_anticaptcha import AnticaptchaClient, ImageToTextTask
api_key = '174faff8fbc769e94a5862391ecfd010'
captcha_fp = open('examples/captcha_ms.jpeg', 'rb')
client = AnticaptchaClient(api_key)
task = ImageToTextTask(captcha_fp)
job = client.createTask(task)
job.join()
print job.get_captcha_text()
Solve funcaptcha
################
Example snippet for funcaptcha:
.. code:: python
from python_anticaptcha import AnticaptchaClient, FunCaptchaTask, Proxy
UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 ' \
'(KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'
api_key = '174faff8fbc769e94a5862391ecfd010'
site_key = 'DE0B0BB7-1EE4-4D70-1853-31B835D4506B' # grab from site
url = 'https://www.google.com/recaptcha/api2/demo'
proxy = Proxy.parse_url("socks5://login:password@123.123.123.123")
client = AnticaptchaClient(api_key)
task = FunCaptchaTask(url, site_key, proxy=proxy, user_agent=user_agent)
job = client.createTask(task)
job.join()
print job.get_token_response()
Report incorrect image
######################
Example snippet for reporting an incorrect image task:
.. code:: python
from python_anticaptcha import AnticaptchaClient, ImageToTextTask
api_key = '174faff8fbc769e94a5862391ecfd010'
captcha_fp = open('examples/captcha_ms.jpeg', 'rb')
client = AnticaptchaClient(api_key)
task = ImageToTextTask(captcha_fp)
job = client.createTask(task)
job.join()
print job.get_captcha_text()
job.report_incorrect()
Setup proxy
###########
The library is not responsible for managing the proxy server. However, we point to
the possibility of simply launching such a server by:
.. code::
pip install mitmproxy
mitmweb -p 9190 -b 0.0.0.0 --ignore '.' --socks
Next to in your application use something like:
.. code:: python
proxy = Proxy.parse_url("socks5://123.123.123.123:9190")
We recommend entering IP-based access control for incoming addresses to proxy. IP address required by
`Anticaptcha.com`_ is:
.. code::
69.65.41.21
209.212.146.168
.. _Anticaptcha.com: http://getcaptchasolution.com/p9bwplkicx
Error handling
##############
In the event of an application error, the AnticaptchaException exception is thrown. To handle the exception, do the following:
.. code:: python
from python_anticaptcha import AnticatpchaException, ImageToTextTask
try:
# any actions
except AnticatpchaException as e:
if e.error_code == 'ERROR_ZERO_BALANCE':
notify_about_no_funds(e.error_id, e.error_code, e.error_description)
else:
raise
.. usage-end
Versioning
----------
We use `SemVer`_ for versioning. For the versions available, see the
`tags on this repository`_.
Authors
-------
- **Adam Dobrawy** - *Initial work* - `ad-m`_
See also the list of `contributors`_ who participated in this project.
License
-------
This project is licensed under the MIT License - see the `LICENSE.md`_
file for details
.. _SemVer: http://semver.org/
.. _tags on this repository: https://github.com/ad-m/python-anticaptcha/tags
.. _ad-m: https://github.com/ad-m
.. _contributors: https://github.com/ad-m/python-anticaptcha/contributors
.. _LICENSE.md: LICENSE.md
|