验证码识别

  • 基于线上的打码平台识别验证码
  • 打码平台有:
    • 1,超级鹰(推荐)http://www.chaojiying.com/
    • 2,云打码
    • 打码兔等
      超级鹰的使用:
      1,注册登录购买账户积分

      2,创建一个软件ID

创建好后就会生成一个id信息
3,选择超级鹰开发文档

选择对应的语言

点击下载





封装好的超级鹰打码平台的类

# -*- coding: utf-8 -*-import requests
from hashlib import md5class Chaojiying_Client(object):def __init__(self, username, password, soft_id):self.username = usernamepassword =  password.encode('utf8')self.password = md5(password).hexdigest()self.soft_id = soft_idself.base_params = {'user': self.username,'pass2': self.password,'softid': self.soft_id,}self.headers = {'Connection': 'Keep-Alive','User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',}def PostPic(self, im, codetype):"""im: 图片字节codetype: 题目类型 参考 http://www.chaojiying.com/price.html"""params = {'codetype': codetype,}params.update(self.base_params)files = {'userfile': ('ccc.jpg', im)}r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)return r.json()def ReportError(self, im_id):"""im_id:报错题目的图片ID"""params = {'id': im_id,}params.update(self.base_params)r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)return r.json()def tranformImgCode(): #封装一个验证吗识别的函数chaojiying = Chaojiying_Client('gemoumou', '1234567', '906463')im = open('D:/py/Chaojiying_Python/code.jpg', 'rb').read()print(chaojiying.PostPic(im, 1902)['pic_str'])return (chaojiying.PostPic(im, 1902)['pic_str'])if __name__ == '__main__':Chaojiying_Client.tranformImgCode()#if __name__ == '__main__':
#   chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '96001')   #用户中心>>软件ID 生成一个替换 96001
#   im = open('a.jpg', 'rb').read()                                                    #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
#   print chaojiying.PostPic(im, 1902)                                              #1902 验证码类型  官方网站>>价格体系 3.4+版 print 后要加()

爬虫登录代码展示

# -*- coding: utf-8 -*-
import requests
from lxml import etree
from Chaojiying_Python import chaojiying
import timeheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"} #模仿浏览器UA头session = requests.Session()# 动态获取cookie
# 识别验证码
url ="https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx"
page_text = session.get(url=url,headers=headers).text
# 解析验证码图片
tree = etree.HTML(page_text)
img_src = "https://so.gushiwen.cn/"+tree.xpath('//*[@id="imgCode"]/@src')[0]
# 将验证码图片保存到本地
img_data = session.get(img_src,headers=headers).content
with open ('D:/py/Chaojiying_Python/code.jpg',"wb") as fp:fp.write(img_data)# 识别验证码
code_text = chaojiying.Chaojiying_Client.tranformImgCode() #调用超级鹰打码平台识别出的验证码
time.sleep(2)login_url = "https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx"
data = {# 如果在请求参数中看见一组乱序的请求参数,需要抓包验证下是否动态变化如下:"__VIEWSTATE" "__VIEWSTATEGENERATOR"# 如果是动态变化的参数一般会隐藏在前台源码中,我们需要进行xpaht 或者正则 等方式进行提取 就可以获得实时的参数# 如果前台源码中没有,我们可以通过抓包全局收索获取对应的数据包提取参数赋值到data中"__VIEWSTATE": "wLzVsPN64jZIa8aQJI9HzVvaaknH6pBhUG+UOMQKX8NEFV49xwtLRgU8GH4O1o+mClDbtnYiKbXMOIM6VRh7HGzM4hpMpd0qBUM3b/pXlzZ2gnbcuB+5RUBJ/i0=","__VIEWSTATEGENERATOR": "C93BE1AE","from": "http://so.gushiwen.cn/user/collect.aspx","email": "18398141234","pwd": "123456","code": code_text,# 验证码动态变化"denglu": "登录"
}
# 对点击登录按钮发起请求,获取了登录成功后的页面源码数据
page_text_login = session.post(url = login_url,headers=headers,data=data).text
print(page_text_login)


07-爬虫验证码破解实战相关推荐

  1. 基于 CNN 的验证码破解实战项目

    ♚ 作者:沂水寒城,CSDN博客专家,个人研究方向:机器学习.深度学习.NLP.CV Blog: http://yishuihancheng.blog.csdn.net 在我们的实际生活中有很多的场景 ...

  2. 基于深度学习的验证码破解实战【源站图像数据采集+图像预处理+图像切割+模型识别分析】

    深度学习应用于图像处理领域应该说有很长一段时间了,相关的研究成果也有很多的积累了,从项目和实践入手是我觉得的最好最快速有效的学习手段,之前有过实际的验证码识别项目,今天正好有时间就想着把之前做的项目以 ...

  3. 爬虫进阶教程:极验(GEETEST)验证码破解教程

    原文链接及原作者:爬虫进阶教程:极验(GEETEST)验证码破解教程 | Jack Cui 一.前言 爬虫最大的敌人之一是什么?没错,验证码![Geetest]作为提供验证码服务的行家,市场占有率还是 ...

  4. 爬虫之极验验证码破解-滑动拼图验证码破解

    滑动拼图验证码破解 前言 步骤分析 第一步,获取原图 第二步 拼接图片 第三步 计算豁口所在位置 第四步 计算拖动距离 模拟拖动 其他 前言 滑动验证码已经流行很多年了,我们在这里尝试一下如何实现滑动 ...

  5. 爬虫如何解决反爬问题——顶象面积验证码破解

    现在网上的反爬措施越来越多,也越来越千奇百怪.居然有验证码让你选哪个面积大,比较新奇,所以来破解一下. 顶象验证码样例如下: 先讲讲解识别原理,最后附上识别代码. 1.确定标记线的位置 先观察标记线颜 ...

  6. Python大型网络爬虫项目开发实战

    1    讲师简介 2    课程简介及特色 实战精通Scrapy爬虫项目编写 "Scrapy是Python的一个非常流行的爬虫框架,使用Scrapy框架可以很方面做出大型爬虫项目,但Scr ...

  7. 极验验证码破解(三)

    一.网站http://www.gsxt.gov.cn滑动验证码概述 二.极验验证码破解-抓包分析 三.极验验证码破解-搭建本地验证码服务 四.极验验证码破解-分析geetest.js,得到所需参数 五 ...

  8. 极验验证码破解—超详细教程(三)

    极验验证码破解-超详细教程(三) Gayhub:FanhuaandLuomu/geetest_brek [国家企业信用信息公示系统为例] 目录 一.网站http://www.gsxt.gov.cn滑动 ...

  9. 极验第四代滑块验证码破解(四):请求分析及加密参数破解

    极验第四代滑块验证码破解(四):请求分析及加密参数破解 声明 一.极验请求分析 1. 滑块测试网站入口 2. 滑块验证过程抓包 3. 请求详解 3.1. adaptive-captcha-demo 3 ...

最新文章

  1. 人工智能导论 王万良教授_学会动态丨辽宁省人工智能导论教学研讨活动在沈阳成功举办...
  2. matlab 次坐标轴 标注,matlab标注坐标轴
  3. 点击button后改变文字_27. 教你零基础搭建小程序:小程序的常见组件—button
  4. matlab 求n 的和,MATLAB求1的阶乘加到n的阶乘和 不要现有的函数,要自己编写出来的...
  5. 四参数拟合曲线_每周放送|曲线拟合
  6. AI 研究人员收入超过百万美元!
  7. 「三分钟系列07」3分钟看懂哈夫曼树与哈夫曼编码
  8. 请画出一个抓虫系统的架构图并说明你的爬虫需要如何优化来提升性能
  9. 抖音快手无水印去水印方法19年11月最新
  10. 逆向破解crackme简要分析
  11. SpringBoot系列 - 集成JWT实现接口权限认证
  12. 【MM32F5270开发板试用】定制MicroPython及读取MPU6050数据到OLED1306
  13. Latex提取与合并pdf文档(超实用)
  14. A survey on semi-supervised learning
  15. es拼音分词 大帅哥_elasticsearch 拼音+ik分词,spring data elasticsearch 拼音分词
  16. 疾病研究:DMD患者家庭理疗练习指南
  17. 2012年全球互联网数据一览:中国互联网用户全球第一
  18. Kubernetes IPVS和IPTABLES
  19. java 下载zip文件格式错误-流方式
  20. 用c++做一个弹窗恶搞——类似病毒但没危害

热门文章

  1. 宝塔面板搭载ThinkPHP5.0项目关于open_basedir报错解决办法
  2. java jar包详解_Jar打包用法详解
  3. skycut刻字机工厂经纬线模切机车间在哪里
  4. java 储存过程_Java储存过程
  5. java如何添加子类,java – 防止子类添加方法
  6. mvn项目Quartz简单上手
  7. selenium:我的第一个程序
  8. Eureka修改实例名称
  9. uboot修改linux源码中参数,将自定义参数从uboot传入kernel的并读取的方法【转】
  10. 直播发送信息 说服务器开小差,【直播课答疑】上课开小差、注意力不集中、成绩差,有办法对付!(31讲)...