【Python】爬虫通过验证码

1、将验证码下载至本地

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

2、解析验证码

powershell 复制代码
pip install ddddocr
python 复制代码
ocr = ddddocr.DdddOcr()
with open('../images/verify.png', 'rb') as f:
    img = f.read()
    code = ocr.classification(img)
    print(code)

3、发送验证码

python 复制代码
	#获取 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')
相关推荐
如何原谅奋力过但无声1 小时前
TensorFlow 1.x常用函数总结(持续更新)
人工智能·python·tensorflow
翔云 OCR API1 小时前
人脸识别API开发者对接代码示例
开发语言·人工智能·python·计算机视觉·ocr
AndrewHZ2 小时前
【图像处理基石】如何在图像中提取出基本形状,比如圆形,椭圆,方形等等?
图像处理·python·算法·计算机视觉·cv·形状提取
温轻舟3 小时前
Python自动办公工具05-Word表中相同内容的单元格自动合并
开发语言·python·word·自动化办公·温轻舟
习习.y4 小时前
python笔记梳理以及一些题目整理
开发语言·笔记·python
撸码猿4 小时前
《Python AI入门》第10章 拥抱AIGC——OpenAI API调用与Prompt工程实战
人工智能·python·aigc
qq_386218994 小时前
Gemini生成的自动搜索和下载论文的python脚本
开发语言·python
vx_vxbs664 小时前
【SSM电影网站】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·python·mysql·小程序·php·idea
烤汉堡6 小时前
Python入门到实战:post请求+cookie+代理
爬虫·python
luod6 小时前
Python异常链
python