进入超级鹰首页,根据官方提示进行操作,下载python的文档后,把其封装进自己的第三方库中

官方原文档:

#!/usr/bin/env python
# coding:utf-8import 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()if __name__ == '__main__':chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '96001')   #用户中心>>软件ID 生成一个替换 96001im = open('a.jpg', 'rb').read()                                                  #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//print chaojiying.PostPic(im, 1902)                                               #1902 验证码类型  官方网站>>价格体系 3.4+版 print 后要加()

封装后文档(我是把他封装入我的第三方库yh)

#!/usr/bin/env python
# coding:utf-8import 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()# 在这里调用的时候把相应的信息放进去(账号密码软件id,就不用重复的放了)
# 留两个参数使其调用更加灵活
# code_path是验证码的图片的路径
# code_type是验证码的类型
def get_code(code_path, code_type):chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '96001')    #用户中心>>软件ID 生成一个替换 96001im = open(code_path, 'rb').read()                                                  #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//return chaojiying.PostPic(im, code_type)                                             #1902 验证码类型  官方网站>>价格体系 3.4+版 print 后要加())

把这些代码放进自己的库中,或者直接把这个文件保存放在全局变量的路径下,我这里是直接放在python的自带模板库的根目录下,这样就可以实现调用

下面以破解超级鹰登录页面的验证码为例

import yh  # 引入个人的库
from lxml import etree  # 解析数据
import requests  # 发送请求url = 'http://www.chaojiying.com/user/login/'  # 随便找一个有验证码的页面就行了,只是用于实验
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0',
}  # UA伪装
page = requests.get(url=url, headers=headers).text  # 获取文本格式的响应
tree = etree.HTML(page)  # 解析数据
# 这里的xpath路径可以直接点开F12后,复制粘贴
code_img_src = 'http://www.chaojiying.com' + tree.xpath('/html/body/div[3]/div/div[3]/div[1]/form/div/img/@src')[0]  # 取到图片的链接
print(code_img_src)  # 打印图片链接
code_img_data = requests.get(url=code_img_src, headers=headers).content  # 下载图片,以二进制形式
with open('./code.jpg', 'wb') as fp:fp.write(code_img_data)  # 存图片
code = yh.get_code('./code.jpg', '1004')  # 调用第三方库里面的函数进行解析
print(code)  # 打印实验结果

实验结果

{‘err_no’: 0, ‘err_str’: ‘OK’, ‘pic_id’: ‘9134016265782900038’, ‘pic_str’: ‘MSDX’, ‘md5’: ‘fda3f65efc662d190921d8a87251b040’}

此文讲了如何破解验证码,后面会写一篇seleium运用破解的验证码实现无头浏览器自动化登录的博文。

python爬虫-破解验证码(封装超级鹰实现)相关推荐

  1. 用Python爬虫破解滑动验证码

    我们可以借用opencv来解决这个问题,主要步骤: opencv 是什么? OpenCV(Open Source Computer Vision Library)是开放源代码计算机视觉库,主要算法涉及 ...

  2. python爬虫破解字体加密案例

    python爬虫破解字体加密案例 本次案例以爬取起小点小说为例 案例目的: 通过爬取起小点小说月票榜的名称和月票数,介绍如何破解字体加密的反爬,将加密的数据转化成明文数据. 程序功能: 输入要爬取的页 ...

  3. 爬虫学习笔记(十八)—— 点触验证码:超级鹰、12306自动登录

    一.打码平台 点触验证码是一种常见的反爬手段. 解决方案有两种:一种是直接解决,这需要深度学习机器学习等图像处理技术,以大量的数据训练识别模型,最终达到模型足矣识别图片中的文字提示和应该点击的区域之间 ...

  4. Python爬虫入门教程:超级简单的Python爬虫教程

    这是一篇详细介绍 [Python]爬虫入门的教程,从实战出发,适合初学者.读者只需在阅读过程紧跟文章思路,理清相应的实现代码,30 分钟即可学会编写简单的 Python 爬虫. 这篇 Python 爬 ...

  5. python爬虫--破解js加密:kankan登录破解

    这一系列文章旨在解决python 爬虫过程中遇到的各种反爬,从简单到复制,是个进阶的过程.如果对你有帮助,欢迎关注. 今天要破解的网站是天天看看(http://www.kankan.com/)的登录, ...

  6. python爬虫遇到验证码的处理方法(以爬取中国执行信息公开网为例)

    朋友们大家好,python爬虫是在学习python时比较容易上手的学习方式,爬虫的思路简要以下几点: 1.获取需要爬取页面的网址,并且对网页内容进行分析.(主要就源代码讨论,如果我们需要的内容没有在源 ...

  7. Python 爬虫云验证码识别

    Python 爬虫验证码识别 1. 百度智能云 2. 使用 2.1 API 文档使用 2.2 SDK 文档使用 3. 获取古诗文网验证码 免责声明:自本文章发布起, 本文章仅供参考,不得转载,不得复制 ...

  8. Python爬虫破解有道翻译

    有道翻译是以异步方式实现数据加载的,要实现对此类网站的数据抓取,其过程相对繁琐,本节我以有道翻译为例进行详细讲解. 通过控制台抓包,我们得知了 POST 请求的参数以及相应的参数值,如下所示: 图1: ...

  9. Python爬虫 | 滑动验证码破解

    极验验证码:需要手动拼合滑块来完成的验证,相对图形验证码识别难度上升了几个等级.下面用程序识别并通过极验验证码的验证,其中有分析识别思路.识别缺口位置.生成滑块拖动.模拟实现滑块拼合通过验证等步骤.需 ...

  10. python爬虫绕过验证码_爬虫怎样绕过验证码?

    叶湘伦:[文字篇]如何系统地自学 Python?​zhuanlan.zhihu.com 1,cookie登录利用cookie的特性:cookie会保持较长的时间,来避免用户频繁登录 cookie一般由 ...

最新文章

  1. TinyXml高速入口(一)
  2. python中取整数的四种方法
  3. java笔试题_一个Java程序员在百度的笔试题整理
  4. boost::process::throw_on_error相关的测试程序
  5. [Bzoj4260]Codechef REBXOR(trie树)
  6. Terrafugia希望在今年夏天带来真正可飞的Airplane
  7. 爬虫用mysql存储还是mongodb_【面试题】Mongodb和MySQL存储爬虫数据的特点是什么?...
  8. 查看 linux 硬件信息:内存、分区、系统、环境变量、防火墙、路由、端口监听、进程、CPU...
  9. 解析几何的解读(二)
  10. day12(html、css)
  11. Centos下磁盘管理的常用命令记录(如查找大文件)
  12. idea 用鼠标滚轮调整代码文字大小
  13. ue4缓存位置怎么改_[UE4]动态液体材质浅谈
  14. f-stack nginx 单进程模式启动流程分析
  15. 2022,云上开发的新纪元
  16. 关于PLC的输入输出点,源型漏型的判断
  17. 获取URL中的一级域名
  18. Clonezilla笔记----安装Clonezilla Live到U盘
  19. 【算法】3 由招聘问题看随机算法
  20. sql2008R2 错误 3000 - 3999

热门文章

  1. C#判断一个数是否为素数
  2. 在OpenWrt系统的路由器NETGEAR WNDR4300上安装KMS服务器vlmcsd
  3. 最佳材料设计Android应用模板
  4. 在知乎上学 Python - 入门篇
  5. HTTP请求时POST参数到底应该怎么传?
  6. Php freeradius 认证,FreeRADIUS 配置认证记录入数据库
  7. access vba代码全部丢失_Access2016由于无法读取数据库中所含的VBA工程,因此无法打开此数据库。只有先删除VBA工程,然后才能打开数据库...
  8. html弹窗复制,js复制弹窗美化
  9. 动量模型回测——基于米矿ricequant的jupyter notebook平台
  10. [日推荐]『饿了么外卖服务』饿了么官方小程序,无需下载安装!