1、将验证码下载至本地
url = 'http://www.example.com/a.html'
resp = requests. get( url)
soup = BeautifulSoup( resp. content. decode( 'UTF-8' ) , 'html.parser' )
src = soup. select_one( 'div.captcha-row img' ) [ 'src' ]
resp = requests. get( src)
with open ( '../images/verify.png' , 'wb' ) as f: f. write( resp. content)
2、解析验证码
pip install ddddocr
ocr = ddddocr. DdddOcr( )
with open ( '../images/verify.png' , 'rb' ) as f: img = f. read( ) code = ocr. classification( img) print ( code)
3、发送验证码
token = soup. find( 'input' , { 'name' : 'csrfToken' } ) . get( 'value' ) verify_url = 'https://www.example.com/verify' data = { 'vcode' : code, 'token' : token, 'btnPost' : '' } headers = { 'content-type' : 'application/x-www-form-urlencoded' , 'user-agent' : 'Mozilla/5.0 (Macintosh;) AppleWebKit/537.36 (KHTML, like Gecko) Chrome' } response = requests. post( verify_url, data= data, headers= headers) if response. status_code == 200 : print ( '人机验证 - success' ) else : print ( '人机验证 - fail' )