0


【Python】爬虫通过验证码

1、将验证码下载至本地

# 获取验证码界面html
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)withopen('../images/verify.png','wb')as f:
    f.write(resp.content)

2、解析验证码

pip install ddddocr
ocr = ddddocr.DdddOcr()withopen('../images/verify.png','rb')as f:
    img = f.read()
    code = ocr.classification(img)print(code)

3、发送验证码

#获取 token,一般验证码框有个隐藏的token
    token = soup.find('input',{'name':'csrfToken'}).get('value')# 提交按钮对应的URL
    verify_url ='https://www.example.com/verify'# 表单数据具体有哪几项可以在界面提交时查看(F12)
    data ={'vcode': code,'token': token,'btnPost':''}# 请求头(F12 从请求里扒)
    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')
标签: python

本文转载自: https://blog.csdn.net/weixin_42364929/article/details/143657691
版权归原作者 茉菇 所有, 如有侵权,请联系我们删除。

“【Python】爬虫通过验证码”的评论:

还没有评论