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
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值