Soweit so gut, immerhin kein js-only Captcha Gedöns, womit ich in Python kaum eine Chance hätte.
Nichts desto trotz habe ich aktuell ein Problem, und zwar erkennt es das Captcha nicht richtig bzw. erhalte ich ein falsches(Löse es per Hand, nach 50 Versuchen sollte man davon ausgehen das captcha richtig zu haben)
Desweiteren war ich mir rein theoretisch sicher das richtige Captcha ausgelesen zu haben, da ich den ausgelesenen Link zum Captcha nur ein einziges Mal aufrufen kann, danach werde ich weitergeleitet auf eine Error Seite.
browser settings:
Code: Alles auswählen
def _build_session(self):
"""
typical mechanize browser settings,
using shared proxy vom proxy module
"""
cj = cookielib.LWPCookieJar()
used_proxy = self._proxy.get_shared_proxy()
self._logger.debug("used proxy: %s" % used_proxy)
self._browser = mechanize.Browser()
self._browser.addheaders = [('User-agent', self._get_random_useragent())]
self._browser.set_cookiejar(cj)
self._browser.set_proxies({"http": used_proxy})
self._browser.set_handle_equiv(True)
self._browser.set_handle_redirect(True)
self._browser.set_handle_referer(True)
self._browser.set_handle_robots(False)
self._browser.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
Code: Alles auswählen
# python has no javascript, so we need the noscript challenge
p = re.compile('src="(http://api.solvemedia.com/papi/challenge.noscript[^\s]+)"')
captcha_url = p.findall(response.read())[0]
html_content = self._browser.open_novisit(captcha_url).read()
if 'client error 117B' in html_content:
# solve media checks for same IP/user agent in following 30 seconds
self._proxy.trash_shared_proxy()
self._build_session()
return self.register()
# looking for captcha img src
pattern = re.compile('<img src="(/papi/media\?c=[^\s]+)"')
captcha_urls = pattern.findall(html_content)
if captcha_urls:
# open_novisit to prevent deleting/refreshing of captcha
captcha_url = captcha_urls[0]
captcha = self._browser.open_novisit('http://api.solvemedia.com' + captcha_url).read()
self._logger.debug('http://api.solvemedia.com' + captcha_url)
open('captcha.gif', 'wb').write(captcha)
cw = CaptchaWindow()
if self.ocr_captcha:
cs = captchaOCR.CaptchaSolver()
cs.load_captcha('captcha')
cs.smoothe_captcha()
cs.resize_captcha()
cs.convert_captcha_BMP()
text, confidence = cs.solve_captcha()
cs.clean()
cw.solved_captcha = text
else:
cw.display_captcha('captcha.gif')
Irgendjemand eine Idee, warum das Captcha falsch ist, wo ich etwas vergesse oder was weiß ich-.-
Ich verzweifel seit 2-3 Tagen daran und habe keinen Ansatz mehr, was ich falsch machen könnte.
MfG Mampf