Python爬某Ecust教务处网站

来源:互联网 发布:餐饮宣传单设计软件 编辑:程序博客网 时间:2024/05/16 19:02

1.背景:

某ECUST高校的教务处网站现在查成绩需要验证码了。但是家长登陆的窗口还没有使用验证码,用这个漏子来爬去一下教务处的成绩:

2.工具:

Google chorme浏览器
Python 3.6.0
requests 库
PyQuery 库
lxml 库(代码中并未用到,只是因为PyQuery库调用了lxml库,姑且列入进来吧)

3.解决方法:

3.1寻找教务处家长查询的地址

直接利用chorme查看,的到地址为

    url0="http://inquiry.ecust.edu.cn/ecustedu/K_StudentQuery/K_PatriarchQueryLogin.aspx"

3.2利用chorme开发者工具查看网页要求(requests)的内容,并构造python字典。

登陆后,在chorme中按F12键进入开发者模式,选中network项,即可查看

这里写图片描述

红框即为要构造的字典,构造字典D1

3.3寻找成绩储存网址,利用chorme找到储存成绩信息的标签

很容易找到,储存成绩的地址为:

url1="http://inquiry.ecust.edu.cn/ecustedu/K_StudentQuery/K_BigScoreTableDetail.aspx?key=1"

利用chorme开发者模式的Elements选项找到成绩储存的位置,这里有个小技巧,鼠标放在Elements的位置上的时候,对应的网页内容会有阴影,很好用!具体内容看图

这里写图片描述

3.4编写爬虫,利用PyQuery解析网页

import requests as rqfrom pyquery import PyQuery as pqdef main(username,userID):    D1={    '__EVENTTARGET':'',    '__EVENTARGUMENT':'',    '__VIEWSTATE':'/wEPDwUKMTUwODM3MTQ2Nw9kFgICAQ9kFgICCQ8PFgQeBFRleHRlHgdWaXNpYmxlaGRkZGO0jC0dS0YidkgEu6HHtZzJ4QnM',    'TxtStudentId':username,    'TxtSFZH':userID,    'BtnLogin':'登录',    '__EVENTVALIDATION':'/wEWBALtgYX0DwK/ycb4AQLU6rEHAuLjh4YMJ/uMbOy0/fn0UeHoB5DIxlisz08='    }#这里的登陆信息及时上文的到的D1,csdn的代码块这么长的字符串可能不支持,复制的时候注意下    url0="http://inquiry.ecust.edu.cn/ecustedu/K_StudentQuery/K_PatriarchQueryLogin.aspx"    url1="http://inquiry.ecust.edu.cn/ecustedu/K_StudentQuery/K_BigScoreTableDetail.aspx?key=1"    s=rq.session()#新建session会话对象,session常用来保持登陆内容    r1=s.post(url0,data=D1)#给url0,传递D1内的内容。    r2=s.get(url1)#返回爬url1的网页html块    pages=r2.text#抓取爬下来的html页面    doc=pq(pages)#新建一个pq解析对象    k=doc('table').filter("#objDataGrid").find('tr')#找到标签为id="obj.."的table中的名为'tr'的标签的内容,k现在是许多个tr标签,需要用循环处理k    N=[]#新建空列表    for eachitem in k:        N.append(pq(eachitem).text().split())#split 分隔带空格的字符串,N是一个二维List    return Nif __name__ == "__main__":    username=input('请输入学号:')    userid=input('请输入身份证号:')    N=main(username,userid)    for i in N:#纯粹为了打印的好看一点hhh        for j in range(0,7):            print(i[j]+'\t',end='')        print('')#

4.总结

1.session 保持登陆的爬虫2.chorme开发者工具配合pq解析html网页厉害的不要不要的
原创粉丝点击