利用python自动登录齐鲁工业大学旧版正方教务系统并获取自己的成绩单

本文介绍了如何使用Python自动化登录齐鲁工业大学的旧版正方教务系统,并成功获取个人成绩单。关键步骤包括创建session,解析登录页面获取动态码,发送登录请求并处理验证码。登录状态保存在session中,可用于后续的数据抓取。
摘要由CSDN通过智能技术生成

过程简要描述:创建一个session,用这个session发送请求。请求报文中的字段都很简单,稍微分析下登录发送请求报文就能明白,除了一个动态码。通过分析登录请求报文,我发现报文首部中需要一个动态生成的动态码,这个动态码藏在登陆页面的前端代码中,所以获取前端动态码很重要。登录成功后,成功登录的状态将保存到session中,可以利用这个session访问任何信息。

注意:需要手动输入验证码,验证码图片自动下载到当前文件夹下。

代码实现如下:

import re
import requests
import urllib
from lxml import etree
import operator as op
import xlwt

# 获取前端动态码
def get___VIEWSTATE(session):
    index_url = 'http://210.44.159.4'
    index_page = session.get(index_url, headers = headers)
    html = index_page.text

    pattern = r'name="__VIEWSTATE" value="(.*?)"'
    __VIEWSTATE = re.findall(pattern, html)
    return __VIEWSTATE[0]

# 获取前端动态码
def get___VIEWSTATE_by_url(session, index_url):
    index_page = session.get(index_url, headers = headers)
    html = index_page.text
    pattern = r'name="__VIEWSTATE" value="(.*?)"'
    __VIEWSTATE = re.findall(pattern, html)
    return __VIEWSTATE[0]

# 获取前端动态码
def get___VIEWSTATE_by_html(session, html_text):
    html = html_text
    pattern = r'name="__VIEWSTATE" value="(.*?)"'
    __VIEWSTATE = re.findall(pattern, html)
    return __VIEWSTATE[0]

# 获取前端动态码
def get___VIEWSTATEGENERATOR(session):
    index_url = 'http://210.44.159.4'
    index_page = session.get(index_url, headers=headers)
    html = index_page.text

    pattern = r'name="__VIEWSTATEGENERATOR" value="(.*?)"'
    __VIEWSTATEGENERATOR = re.findall(pattern, html)
    return __VIEWSTATEGENERATOR[0]

# 获取前端动态码
def get___VIEWSTATEGENERATOR_by_url(session, index_url):
    index_page = session.get(index_url, headers=headers)
    html = index_page.text

    pattern = r'name="__VIEWSTATEGENERATOR" value="(.*?)"'
    __VIEWSTATEGENERATOR = re.findall(pattern, html)
    return __VIEWSTATEGENERATOR[0]

# 获取前端动态码
def get___VIEWSTATEGENERATOR_by_html(session, html_text):
    html = html_text

    pattern = r'name="__VIEWSTATEGENERATOR" value="(.*?)"'
    __VIEWSTATEGENERATOR = re.findall(pattern, html)
    return __VIEWSTATEGENERATOR[0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值