Python验证码识别登陆

验证码识别

一、简介

验证码和爬虫之间的爱恨情仇?

反爬机制:验证码,识别验证码图片中的数据用于模拟相关操作。

识别验证码的操作

  • -人工肉眼识别(不推荐)
  • -第三方自动识别(推荐)

第三方平台

1.平台操作

  • 超级鹰

    链接:http://www.chaojiying.com/user/

注册账号后,创建一个新软件,这个软件的ID和名称以及自己账号密码都要用到。

点击开发文档-》python语言

Python语言Demo下载-超级鹰验证码识别API接口 (chaojiying.com)

把下载好的压缩包解压后放进代码目录

2.使用

找到要使用的代码

chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '96001')  #用户中心>>软件ID 生成一个替换 96001
im = open('a.jpg', 'rb').read()                                        #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
print(chaojiying.PostPic(im, 1902))                                     #1902 验证码类型  官方网站>>价格体系 3.4+版 print 后要加()
#print chaojiying.PostPic(base64_str, 1902)  #此处为传入 base64代码

把代码粘贴到启动方法

修改上述信息为自己的内容

验证码类型查看:验证码类型与价格表-超级鹰验证码识别 (chaojiying.com)

二、实战

1.验证码识别

登录古诗文网 (gushiwen.cn)

-1.将验证码图片进行本地下载
-2.调用平台提供的示例代码进行图片示例识别

import requests
from lxml import etree
from chaojiying import Chaojiying_Client
import os
if not os.path.exists('./imgs'):
    os.mkdir('./imgs')
#将验证码下载到本地
url = 'https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77'
}
#请求图片链接
page_text=requests.get(url=url,headers=headers).text
tree = etree.HTML(page_text)
img_src = 'https://so.gushiwen.cn/'+tree.xpath('//img[@id="imgCode"]/@src')[0]
print("图片链接:",img_src)
#下载验证码图片到imgs文件夹
img_data = requests.get(url=img_src,headers=headers).content
with open('./img'+'验证码'+'.jpg','wb') as fp:
    fp.write(img_data)
#识别验证码
chaojiying = Chaojiying_Client('你自己的账号', '密码', 'www')   #用户中心>>软件ID 生成一个替换 96001
im = open('./img'+'验证码'+'.jpg', 'rb').read()
result_dic = chaojiying.PostPic(im, 1902)#本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
print(result_dic)
print('验证码',result_dic.get('pic_str'))

总结

获取页面的验证码图片还是以前的知识,识别验证码则是直接调用

2.模拟登录

分析

-为什么模拟登录?
	-爬取基于某些用户的用户信息。
-需求
	-对人人网进行模拟登录
	-人人网注册太麻烦,直接继续使用古诗文网
	https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx
-原理
	-点击登录按钮之后会发起一个post请求
	-post请求中会携带登录之前录入的相关的登录信息(用户名、密码、验证码...)
		-验证码每次请求都会变化---和每次登录的请求意义对应
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你好!关于Python验证码识别,我可以给你一些建议和指导。 首先,验证码识别是一个广泛应用的领域,也是一个挑战性的任务。在Python中,你可以利用一些库和工具来实现验证码识别。 1. 使用图像处理库:Python中有很多图像处理库可供选择,如OpenCV、PIL(Pillow)等。你可以使用这些库来对验证码图像进行预处理,如灰度化、二值化、降噪等,以便更好地进行后续的识别。 2. 机器学习算法:对于一些简单的验证码,你可以尝试使用机器学习算法进行识别。常用的算法包括支持向量机(SVM)、随机森林(Random Forest)等。你需要先收集一些已知标签的验证码样本,然后使用这些样本进行模型的训练和测试。 3. 深度学习方法:对于复杂的验证码,尤其是存在干扰线、噪声等情况下,传统的机器学习算法可能效果不佳。这时你可以考虑使用深度学习方法,如卷积神经网络(CNN)。你可以使用一些深度学习框架,如TensorFlow、Keras、PyTorch等,来实现验证码的训练和识别。 另外,你可能还需要考虑一些验证码的特殊情况,比如旋转、扭曲、遮挡等。对于这些情况,你可以尝试使用图像增强技术来改善识别效果。 总之,验证码识别是一个复杂的任务,需要结合图像处理、机器学习和深度学习等技术进行处理。希望以上建议对你有所帮助!如有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值