Das Captcha wird zufällig generiert. Ich bekomme den Link von Captcha und lade es herunter. Danach crawle ich die Website mit diesem Captcha und Header, die auch korrekt eingestellt ist. Es erscheint jedoch ein Fehler, dass das Captcha falsch ist! Ich habe keine Ahnung, wie ich das lösen soll. Es scheint, dass wenn ich ein Captcha bekomme, es geändert wird. Kann mir jemand helfen? Jede Hilfe wird geschätzt.Python Web Spider: Wie Captcha lösen?
Mein Skript:
#coding=utf-8
import urllib
import urllib.request as urllib2
import sys
import http.cookiejar as cookielib
import time
import os
time=time.time()
cookiejar=cookielib.CookieJar()
urlopener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
urllib2.install_opener(urlopener)
urlopener.addheaders.append(('Referer', 'http://www.jsgsj.gov.cn:58888/mini/netweb/SMLibrary.jsp'))
urlopener.addheaders.append(('Accept-Language', 'zh-CN'))
urlopener.addheaders.append(('Host', 'www.jsgsj.gov.cn:58888'))
urlopener.addheaders.append(('User-Agent', 'Mozilla/5.0 (compatible; MISE 9.0; Windows NT 6.1); Trident/5.0'))
urlopener.addheaders.append(('Connection', 'Keep-Alive'))
imgurl='http://www.jsgsj.gov.cn:58888/mini/netWebServlet.json?randImg=true&tmp='+str(time)
outfile=open(r'code.jpg', 'wb')
response=urllib2.Request(imgurl)
html=urlopener.open(response)
outfile.write(html.read())
outfile.close()
authcode=raw_input('enter the code:')
url_company='http://www.jsgsj.gov.cn:58888/mini/netWebServlet.json?codeCheck=true'
data={'corpName':'苏州','yzm':authcode}
html=urlopener.open(urllib2.Request(url_company,urllib.urlencode(data)))
page=(html.read())
print ("html:",yzm, page)
Vielleicht sollten Sie versuchen, diese: https://pypi.python.org/pypi/captcha-solver/0.0.3 –
gute Frage! – Veltro