前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软考成绩出来了,你过了吗?软考成绩查询接口分析及Python实现

软考成绩出来了,你过了吗?软考成绩查询接口分析及Python实现

作者头像
SingYi
发布2022-07-13 20:59:53
1.1K0
发布2022-07-13 20:59:53
举报
文章被收录于专栏:Lan小站

没什么用的废话

很久没有写爬虫相关的文章了,因为现在大多数时间都在写Web相关的代码。 今天朋友问我软考成绩咋样,我才知道成绩出来了。 查了一下,成绩很理想,不出乎我的意料之外。因为:雨过天晴,糟糕的近期,总算迎来了晴天

这不是重点,今天来研究一下软考成绩查询网站。

官网查成绩地址: https://query.ruankao.org.cn/score/main

页面及网络请求分析

验证码分析

可以看见,页面中有两个查询方式,根据准考证号查询以及根据身份证号查询,以及查询都需要验证码。 看到验证码,首先看下他的逻辑有没有问题,就是看能不能跳过二维码。 所以我直接点击提交。

它发送了一个网络请求VerifyCaptcha,然后返回的preview是验证码错误。 到这里还不能确定他的验证码是否可以跳过继续。 我们输入正确的验证码后点击查询。

可以看见这次的返回值为ok,并且进行了查询,返回了查询结果为空。

我们看一下这个result的网络请求。

请求方式:Post 发送了表单数据:

stage: 2021年上半年 xm: 11 zjhm: 11 jym: 8221 select_type: 1 上述参数直接猜都猜得出吧。年份,姓名,证件号码,验证码,查询方式。

然后我们用Python写一个请求试一下。

代码语言:javascript
复制
import requests

url = 'https://query.ruankao.org.cn//score/result'

data = {
    'stage': '2021年上半年',
    'xm': 'lan',
    'zjhm': '666',
    'jym': '7777',
    'select_type': '1',
}
print(requests.post(url=url, data=data).json())

看来验证码不能跳过,所以有以下几种方法。

  1. 保存验证码,用户输入后再提交请求。
  2. 将验证码上传至第三方验证码识别平台,返回验证码后提交请求。 这里为了方便采用第一种。

过验证码

看一下他验证码是怎么请求的。

GET请求,获取验证码图片。 所以新建一个长链接Session请求 先请求一次验证码获取接口,将图片保存在本地,

代码语言:javascript
复制
import requests
import time

session = requests.session()

url = 'https://query.ruankao.org.cn//score/result'
with open('a.png', 'wb') as f:
    f.write(session.get(f'https://query.ruankao.org.cn//score/captcha?{time.time() * 1000}').content)

然后等用户打开验证码图片识别之后输入验证码再发送查询成绩的网络请求。

代码语言:javascript
复制
data = {
    'stage': '2021年上半年',
    'xm': '姓名',
    'zjhm': '证件号码',
    'jym': input('请输入验证码'),
    'select_type': '1',
}
print(session.post(url=url, data=data).json())

查询成功,然后你就可以再结合结合放到Web啥的

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 没什么用的废话
  • 页面及网络请求分析
    • 验证码分析
      • 过验证码
      相关产品与服务
      验证码
      腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档