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网页厉害的不要不要的
阅读全文
0 0
- Python爬某Ecust教务处网站
- 校外访问教务处网站
- 模拟登陆教务处网站C#
- Python模拟登录东北大学教务处
- 三小时拿下东南大学教务处网站
- python 登陆天津理工教务处 选课
- Python 模拟登陆华理教务处
- ECUST队
- 教你解析教务处网站,查找卷面成绩、平时成绩(西邮教务处)
- 【经验】对教务处网站的抓包分析并GET教务处照片
- Python爬虫初学(3)登陆武汉理工大学教务处
- python 模拟登录 中国科大 教务处系统
- python实现南大教务处通知更新进行自动推送
- python小爬虫—获取学校教务处成绩
- ECUST Windows + Office
- 使用Java模拟浏览器登陆网站(以抓取武汉理工大学教务处学生个人课表网页为例)
- 【4月20日】使用requests登陆教务处网站并查询课表
- 模拟登陆学校教务处网站,并保存到成绩为excel格式
- cd
- 注册表从入门到精通
- volley的学习
- 浅谈Nginx之反向代理与负载均衡
- Listary -- 高效率办公软件
- Python爬某Ecust教务处网站
- 踩坑,gcc 参数顺序导致编译出错?
- string.reserve 与 string.resize的区别
- Round 6 F
- mysql时间格式化,按时间段查询的MySQL语句
- Android程序签名详解、打包,分别使用keytool工具和Android Studio生成数字证书
- 广度优先搜索与深度优先搜索的 java 实现
- XML布局View转换成Bitmap
- ProgrammingMethodology