跳转到主要内容

Anticaptcha.com支持的解决验证码的客户端库。

项目描述

https://github.com/ad-m/python-anticaptcha/workflows/Python%20package/badge.svg Python package Join the chat at https://gitter.im/python-anticaptcha/Lobby Python compatibility

支持Anticaptcha.com的解决验证码的客户端库。该库支持Python 2.7和Python 3。

库将周期性地自动测试以确保其正常运行。我们一直在努力使其有效运行。

如果集成出现任何问题 - 阅读文档创建问题,使用Gitter或私下联系。

入门指南

使用以下命令安装为标准Python包:

pip install python-anticaptcha

使用方法

要使用此库,您需要Anticaptcha.com API密钥。

解决reCAPTCHA

reCAPTCHA示例代码片段

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()

完整的集成示例在文件examples/recaptcha.py中提供。

如果您需要多次处理少量页面以增加可靠性,可以指定验证码是否可见。此参数不是必需的,因为系统会自动检测不可见的sitekeys,并需要一些递归措施进行自动化培训和数据分析。为此,将is_invisible参数传递给NoCaptchaTaskProxylessTaskNoCaptchaTask等,例如。

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()

解决文本验证码

文本验证码示例代码片段

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()

解决Funcaptcha

Funcaptcha示例代码片段

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()

报告错误的图片

报告错误图片任务的示例代码片段

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()

设置代理

库不负责管理代理服务器。然而,我们指出可以通过以下方式简单地启动这样的服务器:

pip install mitmproxy
mitmweb -p 9190 -b 0.0.0.0 --ignore '.' --socks

在您的应用程序旁边使用类似的东西

proxy = Proxy.parse_url("socks5://123.123.123.123:9190")

我们建议为代理的入站地址输入基于IP的访问控制。由Anticaptcha.com需要的IP地址是

69.65.41.21
209.212.146.168

错误处理

在应用程序出错的情况下,会抛出AnticaptchaException异常。要处理异常,请执行以下操作:

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

版本控制

我们使用SemVer进行版本控制。有关可用的版本,请参阅此存储库的标签

作者

  • Adam Dobrawy - 初始工作 - ad-m

还可以查看参与此项目的贡献者列表

许可协议

本项目采用MIT许可协议 - 有关详细信息,请参阅LICENSE.md文件

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

python-anticaptcha-1.0.0.tar.gz (42.4 kB 查看哈希值)

上传时间

构建分布

python_anticaptcha-1.0.0-py2.py3-none-any.whl (9.6 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面