本文整理汇总了Python中module.plugins.captcha.ReCaptcha.ReCaptcha.detect_key方法的典型用法代码示例。如果您正苦于以下问题:Python ReCaptcha.detect_key方法的具体用法?Python ReCaptcha.detect_key怎么用?Python ReCaptcha.detect_key使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类module.plugins.captcha.ReCaptcha.ReCaptcha
的用法示例。
在下文中一共展示了ReCaptcha.detect_key方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: handle_captcha
# 需要导入模块: from module.plugins.captcha.ReCaptcha import ReCaptcha [as 别名]
# 或者: from module.plugins.captcha.ReCaptcha.ReCaptcha import detect_key [as 别名]
def handle_captcha(self):
solvemedia = SolveMedia(self.pyfile)
captcha_key = solvemedia.detect_key()
if captcha_key:
self.captcha = solvemedia
response, challenge = solvemedia.challenge(captcha_key)
self.data = self.load("http://www.mediafire.com/?" + self.info['pattern']['ID'],
post={'adcopy_challenge': challenge,
'adcopy_response' : response})
return
recaptcha = ReCaptcha(self.pyfile)
captcha_key = recaptcha.detect_key()
if captcha_key:
url, inputs = self.parse_html_form('name="form_captcha"')
self.log_debug(("form_captcha url:%s inputs:%s") % (url, inputs))
if url:
self.captcha = recaptcha
response, challenge = recaptcha.challenge(captcha_key)
inputs['g-recaptcha-response'] = response
self.data = self.load(self.fixurl(url), post=inputs)
else:
self.fail("ReCaptcha form not found")
示例2: handle_free
# 需要导入模块: from module.plugins.captcha.ReCaptcha import ReCaptcha [as 别名]
# 或者: from module.plugins.captcha.ReCaptcha.ReCaptcha import detect_key [as 别名]
def handle_free(self, pyfile):
self.html = self.load(pyfile.url, post={'gateway_result': "1"})
self.check_errors()
m = re.search(r"var fid = '(\w+)';", self.html)
if m is None:
self.retry(wait_time=5)
params = {'fid': m.group(1)}
self.log_debug("FID: %s" % params['fid'])
self.check_errors()
recaptcha = ReCaptcha(self)
captcha_key = recaptcha.detect_key()
if captcha_key is None:
return
self.html = self.load("https://dfiles.eu/get_file.php", get=params)
if '<input type=button value="Continue" onclick="check_recaptcha' in self.html:
params['response'], params['challenge'] = recaptcha.challenge(captcha_key)
self.html = self.load("https://dfiles.eu/get_file.php", get=params)
m = re.search(self.LINK_FREE_PATTERN, self.html)
if m:
self.link = urllib.unquote(m.group(1))
示例3: handle_free
# 需要导入模块: from module.plugins.captcha.ReCaptcha import ReCaptcha [as 别名]
# 或者: from module.plugins.captcha.ReCaptcha.ReCaptcha import detect_key [as 别名]
def handle_free(self, pyfile):
data = {'ukey': self.info['pattern']['ID']}
m = re.search(self.AB1_PATTERN, self.data)
if m is None:
self.error(_("__AB1"))
data['__ab1'] = m.group(1)
recaptcha = ReCaptcha(self)
m = re.search(self.RECAPTCHA_PATTERN, self.data)
captcha_key = m.group(1) if m else recaptcha.detect_key()
if captcha_key is None:
self.error(_("ReCaptcha key not found"))
response, challenge = recaptcha.challenge(captcha_key)
self.account.form_data = {'recaptcha_challenge_field': challenge,
'recaptcha_response_field' : response}
self.account.relogin()
self.retry(2)
json_url = "http://filecloud.io/download-request.json"
res = self.load(json_url, post=data)
self.log_debug(res)
res = json.loads(res)
if "error" in res and res['error']:
self.fail(res)
self.log_debug(res)
if res['captcha']:
data['ctype'] = "recaptcha"
data['recaptcha_response'], data['recaptcha_challenge'] = recaptcha.challenge(captcha_key)
json_url = "http://filecloud.io/download-request.json"
res = self.load(json_url, post=data)
self.log_debug(res)
res = json.loads(res)
if "retry" in res and res['retry']:
self.retry_captcha()
else:
self.captcha.correct()
if res['dl']:
self.data = self.load('http://filecloud.io/download.html')
m = re.search(self.LINK_FREE_PATTERN % self.info['pattern']['ID'], self.data)
if m is None:
self.error(_("LINK_FREE_PATTERN not found"))
if "size" in self.info and self.info['size']:
self.check_data = {'size': int(self.info['size'])}
self.link = m.group(1)
else:
self.fail(_("Unexpected server response"))
示例4: handle_free
# 需要导入模块: from module.plugins.captcha.ReCaptcha import ReCaptcha [as 别名]
# 或者: from module.plugins.captcha.ReCaptcha.ReCaptcha import detect_key [as 别名]
def handle_free(self, pyfile):
recaptcha = ReCaptcha(self)
captcha_key = recaptcha.detect_key()
if captcha_key:
try:
self.link = re.search(self.LINK_PREMIUM_PATTERN, self.data)
recaptcha.challenge()
except Exception, e:
self.error(e)
示例5: handle_captcha
# 需要导入模块: from module.plugins.captcha.ReCaptcha import ReCaptcha [as 别名]
# 或者: from module.plugins.captcha.ReCaptcha.ReCaptcha import detect_key [as 别名]
def handle_captcha(self, inputs):
m = re.search(self.CAPTCHA_PATTERN, self.data)
if m is not None:
captcha_url = m.group(1)
inputs['code'] = self.captcha.decrypt(captcha_url)
return
m = re.search(self.CAPTCHA_BLOCK_PATTERN, self.data, re.S)
if m is not None:
captcha_div = m.group(1)
numerals = re.findall(r'<span.*?padding-left\s*:\s*(\d+).*?>(\d)</span>', html_unescape(captcha_div))
self.log_debug(captcha_div)
inputs['code'] = "".join(a[1] for a in sorted(numerals, key=operator.itemgetter(0)))
self.log_debug("Captcha code: %s" % inputs['code'], numerals)
return
recaptcha = ReCaptcha(self.pyfile)
try:
captcha_key = re.search(self.RECAPTCHA_PATTERN, self.data).group(1)
except Exception:
captcha_key = recaptcha.detect_key()
else:
self.log_debug("ReCaptcha key: %s" % captcha_key)
if captcha_key:
self.captcha = recaptcha
inputs['recaptcha_response_field'], inputs['recaptcha_challenge_field'] = recaptcha.challenge(captcha_key)
return
solvemedia = SolveMedia(self.pyfile)
try:
captcha_key = re.search(self.SOLVEMEDIA_PATTERN, self.data).group(1)
except Exception:
captcha_key = solvemedia.detect_key()
else:
self.log_debug("SolveMedia key: %s" % captcha_key)
if captcha_key:
self.captcha = solvemedia
inputs['adcopy_response'], inputs['adcopy_challenge'] = solvemedia.challenge(captcha_key)
示例6: handle_captcha
# 需要导入模块: from module.plugins.captcha.ReCaptcha import ReCaptcha [as 别名]
# 或者: from module.plugins.captcha.ReCaptcha.ReCaptcha import detect_key [as 别名]
def handle_captcha(self):
solvemedia = SolveMedia(self)
captcha_key = solvemedia.detect_key()
if captcha_key:
response, challenge = solvemedia.challenge(captcha_key)
self.html = self.load("http://www.mediafire.com/?" + self.info['pattern']['ID'],
post={'adcopy_challenge': challenge,
'adcopy_response' : response})
return
recaptcha = ReCaptcha(self)
captcha_key = recaptcha.detect_key()
if captcha_key:
response, challenge = recaptcha.challenge(captcha_key)
self.html = self.load(self.pyfile.url,
post={'g-recaptcha-response': response})
示例7: handle_captcha
# 需要导入模块: from module.plugins.captcha.ReCaptcha import ReCaptcha [as 别名]
# 或者: from module.plugins.captcha.ReCaptcha.ReCaptcha import detect_key [as 别名]
def handle_captcha(self):
m = re.search(self.CAPTCHA_PATTERN, self.html)
m2 = re.search(self.CIRCLE_CAPTCHA_PATTERN, self.html)
if m: #: Normal captcha
self.log_debug("Captcha-URL: %s" % m.group(1))
captcha_code = self.captcha.decrypt(urlparse.urljoin(self.base_url, m.group(1)),
input_type="gif")
self.site_with_links = self.load(self.pyfile.url,
post={'recaptcha_response_field': captcha_code})
elif m2: #: Circle captcha
self.log_debug("Captcha-URL: %s" % m2.group(1))
captcha_code = self.captcha.decrypt('%s%s?c=abc' %(self.base_url, m2.group(1)),
output_type='positional')
self.site_with_links = self.load(self.pyfile.url,
post={'button.x': captcha_code[0], 'button.y': captcha_code[1]})
else:
recaptcha = ReCaptcha(self)
captcha_key = recaptcha.detect_key()
if captcha_key:
response, challenge = recaptcha.challenge(captcha_key)
self.site_with_links = self.load(self.pyfile.url,
post={'g-recaptcha-response': response})
else:
self.log_info(_("No captcha found"))
self.site_with_links = self.html
if "recaptcha_image" in self.site_with_links or "data-sitekey" in self.site_with_links:
self.captcha.invalid()
self.retry()
示例8: handle_captcha
# 需要导入模块: from module.plugins.captcha.ReCaptcha import ReCaptcha [as 别名]
# 或者: from module.plugins.captcha.ReCaptcha.ReCaptcha import detect_key [as 别名]
def handle_captcha(self):
if re.search(self.CAPTCHA_PATTERN, self.data):
m1 = re.search(self.INTERNAL_CAPTCHA_PATTERN, self.data)
m2 = re.search(self.CIRCLE_CAPTCHA_PATTERN, self.data)
m3 = re.search(self.SOLVE_MEDIA_PATTERN, self.data)
m4 = re.search(self.KEY_CAPTCHA_PATTERN, self.data)
if m1: #: Normal captcha
self.log_debug("Internal Captcha URL: %s" % urlparse.urljoin(self.pyfile.url, m1.group(1)))
captcha_code = self.captcha.decrypt(urlparse.urljoin(self.pyfile.url, m1.group(1)),
ref=True, input_type="gif")
self.site_with_links = self.load(self.pyfile.url,
post={'recaptcha_response_field': captcha_code})
elif m2: #: Circle captcha
self.log_debug("Circle Captcha URL: %s" % urlparse.urljoin(self.pyfile.url, m2.group(1)))
captcha_code = self.captcha.decrypt(urlparse.urljoin(self.pyfile.url, m2.group(1)),
input_type="png", output_type='positional')
self.site_with_links = self.load(self.pyfile.url,
post={'button.x': captcha_code[0],
'button.y': captcha_code[1]})
elif m3: #: Solvemedia captcha
self.log_debug("Solvemedia Captcha URL: %s" % urlparse.urljoin(self.pyfile.url, m3.group(1)))
solvemedia = SolveMedia(self)
captcha_key = solvemedia.detect_key()
if captcha_key:
response, challenge = solvemedia.challenge(captcha_key)
self.site_with_links = self.load(self.pyfile.url,
post={'adcopy_response' : response,
'adcopy_challenge' : challenge})
elif m4: #: Keycaptcha captcha
self.log_debug("Keycaptcha Captcha URL: %s unsupported, retrying" % m4.group(1))
self.retry()
else:
recaptcha = ReCaptcha(self)
captcha_key = recaptcha.detect_key()
if captcha_key:
try:
response, challenge = recaptcha.challenge(captcha_key)
except Exception:
self.retry_captcha()
self.site_with_links = self.load(self.pyfile.url,
post={'g-recaptcha-response': response})
else:
self.log_info(_("Unknown captcha found, retrying"))
self.retry()
if re.search(self.CAPTCHA_PATTERN, self.site_with_links):
self.retry_captcha()
else:
self.log_info(_("No captcha found"))
self.site_with_links = self.data
示例9: DepositfilesCom
# 需要导入模块: from module.plugins.captcha.ReCaptcha import ReCaptcha [as 别名]
# 或者: from module.plugins.captcha.ReCaptcha.ReCaptcha import detect_key [as 别名]
class DepositfilesCom(SimpleHoster):
__name__ = "DepositfilesCom"
__type__ = "hoster"
__version__ = "0.61"
__status__ = "testing"
__pattern__ = r'https?://(?:www\.)?(depositfiles\.com|dfiles\.(eu|ru))(/\w{1,3})?/files/(?P<ID>\w+)'
__config__ = [("activated" , "bool", "Activated" , True),
("use_premium" , "bool", "Use premium account if available" , True),
("fallback" , "bool", "Fallback to free download if premium fails" , True),
("chk_filesize", "bool", "Check file size" , True),
("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )]
__description__ = """Depositfiles.com hoster plugin"""
__license__ = "GPLv3"
__authors__ = [("spoob", "[email protected]"),
("zoidberg", "[email protected]"),
("Walter Purcaro", "[email protected]")]
NAME_PATTERN = r'<script type="text/javascript">eval\( unescape\(\'(?P<N>.*?)\''
SIZE_PATTERN = r': <b>(?P<S>[\d.,]+) (?P<U>[\w^_]+)</b>'
OFFLINE_PATTERN = r'<span class="html_download_api-not_exists"></span>'
NAME_REPLACEMENTS = [(r'\%u([0-9A-Fa-f]{4})', lambda m: unichr(int(m.group(1), 16))),
(r'.*<b title="(?P<N>.+?)".*', "\g<N>")]
URL_REPLACEMENTS = [(__pattern__ + ".*", "https://dfiles.eu/files/\g<ID>")]
COOKIES = [("dfiles.eu", "lang_current", "en")]
WAIT_PATTERN = r'(?:download_waiter_remain">|html_download_api-limit_interval">|>Please wait|>Try in).+'
ERROR_PATTER = r'File is checked, please try again in a minute'
LINK_FREE_PATTERN = r'<form id="downloader_file_form" action="(http://.+?\.(dfiles\.eu|depositfiles\.com)/.+?)" method="post"'
LINK_PREMIUM_PATTERN = r'class="repeat"><a href="(.+?)"'
LINK_MIRROR_PATTERN = r'class="repeat_mirror"><a href="(.+?)"'
def handle_free(self, pyfile):
self.data = self.load(pyfile.url, post={'gateway_result': "1"})
self.check_errors()
m = re.search(r"var fid = '(\w+)';", self.data)
if m is None:
self.retry(wait=5)
params = {'fid': m.group(1)}
self.log_debug("FID: %s" % params['fid'])
self.check_errors()
self.captcha = ReCaptcha(pyfile)
captcha_key = self.captcha.detect_key()
if captcha_key is None:
return
self.data = self.load("https://dfiles.eu/get_file.php", get=params)
if '<input type=button value="Continue" onclick="check_recaptcha' in self.data:
params['response'], params['challenge'] = self.captcha.challenge(captcha_key)
self.data = self.load("https://dfiles.eu/get_file.php", get=params)
m = re.search(self.LINK_FREE_PATTERN, self.data)
if m is not None:
self.link = urllib.unquote(m.group(1))
def handle_premium(self, pyfile):
if '<span class="html_download_api-gold_traffic_limit">' in self.data:
self.log_warning(_("Download limit reached"))
self.retry(25, 60 * 60, "Download limit reached")
elif 'onClick="show_gold_offer' in self.data:
self.account.relogin()
self.retry()
else:
link = re.search(self.LINK_PREMIUM_PATTERN, self.data)
mirror = re.search(self.LINK_MIRROR_PATTERN, self.data)
if link:
self.link = link.group(1)
elif mirror:
self.link = mirror.group(1)