首页 > 编程语言 > 详细

简单的python学信网查询成绩

时间:2017-02-26 12:00:51      阅读:214      评论:0      收藏:0      [点我收藏+]

这是一个失败的

     python语言刚刚开始学,又遇到了一个同学忘记自己的准考证号,99宿舍找回准考证号失败了,所以就想知道准考证号的大致范围,一个一个的去查总有结果,这只是最初的想法,于是就勇敢的去做了。

用wireshark抓包分析 得到的信息为 post方法 

技术分享

然后用python模拟post 由于这次是失败的,所以就没有贴代码

技术分享

运行结果:

技术分享

尝试过改过表头 返回的数据总是不正确,于是去网上查,看到爬学信网的代码,于是测试成功,但是99宿舍的没有成功,或许是99改了post提交

import requests
import re
 
#自定义头文件
header={Referer:http://www.chsi.com.cn/cet/,
        User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0,
        Host:www.chsi.com.cn}
 
#学信网的url
url="http://www.chsi.com.cn/cet/query"
#读取每一行的准考证号和姓名
num0=0000000000 #准考证号
for i in range(250):
      num=str(num0+i)
      name=‘‘ #名字前两位
      param={
            zkzh:num,
            xm:name
      }
 
      #构造get
      response=requests.get(url,headers=header,params=param)
 
      #为了方便正则表达式找总分,去掉所有换行符
      newtext=response.text.replace(\n,‘‘)
      try:
          #正则表达式找到总分
          score=re.findall(<span class="colorRed">.*?(\d+),newtext)
 
          #输出“姓名+总分”字符串
          ans=name+" "+score[0]
          
          #打印该字符串
          print(ans)
      except:
 
          #打印未能成功爬取的人
          print("no:",num,response.status_code)

总结这次失败的原因:对python语言不够熟悉,对post提交不够了解。

 

 参考资料:https://etenal.me/archives/752

简单的python学信网查询成绩

原文:http://www.cnblogs.com/myblog-2015/p/6443775.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!