刚刚开始接触爬虫,在爬过起点中文网这种不要登陆的网页后转向教务系统这种需要登陆的网页,登录这个因为还有验证码,刚接触所以花费了很长时间,说到底其实就是把你的信息交给网站让它可以认得你的过程,而登录过后还需要选择特定的网页,一直没法抓取特定的源码也花费了很久,反正因为菜都花了很久,参考了很多大佬的代码 ,总共耗时两天,终于完成。有些东西我也不知道理解的对不对,如有不对,请指点迷津!!P.S:=推荐火狐浏览器,也不知道是我眼拙还是浏览器的问题,之前用谷歌浏览器几个关键的东西都没找到被隐藏了,但是火狐就会显示出来,可能会比较方便
以下是登录代码:
#这里大多东西都是从网页F12后的头中提取的
![登陆后的界面Headers](https://img-blog.csdn.net/20180728085750402?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQwNDE0NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
import json
import requests
import re
from html.parser import *
import urllib.request
import os
import csv
import urllib
from bs4 import BeautifulSoup
from urllib import parse
username="********"#这里填自己的学号密码
password="********"
webpage = requests.get(url="http://222.24.62.120/default2.aspx")
Cookie = webpage.cookies # 获取网页cookies
headers = {
'User-Agent': r'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36)',
'Upgrade-Insecure-Requests':'1',
'Referer':'http://222.24.62.120/xscjcx.aspx?xh=username&xm=(密码的编码)&gnmkdm=N121605'#这些都是F12从特定网页中直接提取的
}
while True:
url = "http://222.24.62.120/CheckCode.aspx" # 验证码所在连接
pic = requests.get(url, cookies=Cookie, headers=headers)
if os.path.exists(r'f://yanzhengma.jpg'):
os.remove(r'f://yanzhengma.jpg')
with open(r'f://yanzhengma.jpg', 'wb')as f:
f.write(pic.content)
f.close()
# username = input("输入用户名: ")
# password = input("输入密码 ")
# os.startfile(r'f:yanzheng.jpg')
ycode = input("输入弹出的验证码: ")#从本地找验证码
payload = {
'__VIEWSTATE':' dDwtMTIxNTQzNzk3NTt0PHA8bDxTb3J0RXhwcmVzO3NmZGNiaztkZzM7ZHlieXNjajtTb3J0RGlyZTt4aDtzdHJfdGFiX2JqZztjamN4X2xzYjt6eGNqY3h4czs+O2w8a2NtYztcZTtiamc7XGU7YXNjOzA0MTcyMTE5O3pmX2N4Y2p0al8wNDE3MjExOTs7MDs+PjtsPGk8MT47PjtsPHQ8O2w8aTw0PjtpPDEwPjtpPDIzPjtpPDI4PjtpPDM2PjtpPDQwPjtpPDQyPjtpPDQ0PjtpPDQ2PjtpPDQ4PjtpPDUwPjtpPDUyPjtpPDU0PjtpPDU4PjtpPDYwPjtpPDYyPjs+O2w8dDx0PHA8cDxsPERhdGFUZXh0RmllbGQ7RGF0YVZhbHVlRmllbGQ7PjtsPFhOO1hOOz4+Oz47dDxpPDI+O0A8XGU7MjAxNy0yMDE4Oz47QDxcZTsyMDE3LTIwMTg7Pj47Pjs7Pjt0PHQ8cDxwPGw8RGF0YVRleHRG…paw5a2m5YiGOz4+Ozs7Oz47QDA8cDxsPEhlYWRlclRleHQ7PjtsPOWIm+aWsOasoeaVsDs+Pjs7Ozs+Ozs7Pjs7Ozs7Ozs7Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOacrOS4k+S4muWFsTE1MeS6ujtvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxYSVlPVTs+Pjs+Ozs+O3Q8cDxwPGw8SW1hZ2VVcmw7PjtsPC4vZXhjZWwvMDQxNzIxMTkuanBnOz4+Oz47Oz47Pj47dDw7bDxpPDM+Oz47bDx0PEAwPDs7Ozs7Ozs7Ozs+Ozs+Oz4+Oz4+Oz4+Oz45Xwe6W3nEdXsATQH3RI0PW9pz3Q==',
'txtUserName': '',#自己的学号和密码,其实也可以从原网页中看到
'TextBox2': '',
'txtSecretCode': ycode,
'RadioButtonList1': '%D1%A7%C9%FA',
'Button1': "",
'lbLanguage': '',
'hidPdrs': '',
'hidsc': '',
}
Log_in = r"http://222.24.62.120/default2.aspx"#登录的链接
# Log_in = r""
r = requests.post(url=Log_in, data=payload, headers=headers, cookies=Cookie)
# 用正则算了
pat = r'<title>(.*?)</title>' # 获取标题的正则表达式
x = re.findall(pat, r.text)
if (x[0] == "欢迎使用正方教务管理系统!请登录"):
print("登陆失败")
else:
print("登陆成功")
# print(r.text)
break
接下来就在网页中选信息,找特定网页,F12观察提取自己需要的信息
#![选取后的界面](https://img-blog.csdn.net/20180728090102904?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQwNDE0NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)、
#![找到的对应文件](https://img-blog.csdn.net/20180728094321530?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQwNDE0NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
#![文件的header](https://img-blog.csdn.net/20180728094700321?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQwNDE0NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
#![参数,data里的东西](https://img-blog.csdn.net/20180728094812719?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQwNDE0NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
#我选取的信息是最高成绩那一项
#因为不知道哪个有用,只好把所以header里的东西都搬过来了,大佬莫学
#注意得看Response找到含有自己想要信息的那一页
lheaders = {
'Accept': r'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding':'gzip, deflate',
'Cache-Control': 'private',
'Content-Length': '81597',
'Content-Type':'application/x-www-form-urlencoded',
'Connection': 'keep-alive',
'Host': '222.24.62.120',
'Upgrade-Insecure-Requests':'1',
'Origin':'http://222.24.62.120',
'User-Agent': r'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; TheWorld 7)',
'Cookie':'ASP.NET_SessionId=ckjwrpugds0nspfcynwkpr45',#这个cookie好像是不是会更新?第二天的cookie和前一天不一样导致爬不到网页还吓了我一大跳
'Referer':'http://222.24.62.120/xscjcx.aspx?xh=04172119&xm=%D3%E0%E8%F7%ACu&gnmkdm=N121605'
}
Date = {
'__VIEWSTATE':'dDwtMTIxNTQzNzk3NTt0PHA8bDxTb3J0RXhwcmVzO3NmZGNiazt6eGNqY3h4cztkZzM7ZHlieXNjajtTb3J0RGlyZTt4aDtjamN4X2xzYjtzdHJfdGFiX2JqZzs+O2w8a2NtYztcZTswO2JqZztcZTthc2M7MDQxNzIxMTk7O3pmX2N4Y2p0al8wNDE3MjExOTs+PjtsPGk8MT47PjtsPHQ8O2w8aTw0PjtpPDEwPjtpPDIzPjtpPDI4PjtpPDM2PjtpPDQwPjtpPDQyPjtpPDQ0PjtpPDQ2PjtpPDQ4PjtpPDUwPjtpPDUyPjtpPDU0PjtpPDU4PjtpPDYwPjtpPDYyPjs+O2w8dDx0PHA8cDxsPERhdGFUZXh0RmllbGQ7RGF0YVZhbHVlRmllbGQ7PjtsPFhOO1hOOz4+Oz47dDxpPDI+O0A8XGU7MjAxNy0yMDE4Oz47QDxcZTsyMDE3LTIwMTg7Pj47Pjs7Pjt0PHQ8cDxwPGw8RGF0YVRleHRGaWVsZDtEYXRhVmFsdWVGaWVsZDs+O2w8a2N4em1jO2tjeHpkbTs+Pjs+O3Q8aTwxMj47QDzlv4Xkv67or7476ZmQ6YCJ6K++O+S7u+mAieivvjvor77lpJblrp7ot7XmlZnlraY76L6F5L+u6K++O+i3qOWtpuenkTvntKDotKjmi5PlsZU75YWs5YWx6YCJ5L+u6K++O+S6uuaWh+e0oOi0qOmZkOmAiTvpgInkv67or7476YCJ5L+u6K++KOWwlOmbhSk7XGU7PjtAPDAxOzAyOzAzOzA0OzA1OzA2OzA3OzA4OzA5OzEwOzExO1xlOz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxcZTs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDtWaXNpYmxlOz47bDzlrablj7fvvJowNDE3MjExOTtvPHQ+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOWnk+WQje+8muS9meaik+eRhDtvPHQ+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOWtpumZou+8muiuoeeul+acuuWtpumZojtvPHQ+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOS4k+S4mu+8mjtvPHQ+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOe9kee7nOW3peeoiztvPHQ+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDzkuJPkuJrmlrnlkJE6Oz4+Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOihjOaUv+ePre+8mue9kee7nDE3MDQ7bzx0Pjs+Pjs+Ozs+O3Q8QDA8cDxwPGw8VmlzaWJsZTs+O2w8bzxmPjs+Pjs+Ozs7Ozs7Ozs7Oz47Oz47dDw7bDxpPDE+O2k8Mz47aTw1PjtpPDc+O2k8OT47aTwxMz47aTwxNT47aTwxNz47aTwyMT47aTwyMz47aTwyND47aTwyNT47aTwyNz47aTwyOT47aTwzMT47aTwzMz47aTwzNT47aTw0Mz47aTw0OT47aTw1Mz47aTw1ND47PjtsPHQ8cDxwPGw8VmlzaWJsZTtUZXh0Oz47bDxvPHQ+O+aJgOmAieWtpuWIhjYw77yb6I635b6X5a2m5YiGNjDvvJvph43kv67lrabliIYw77yb5q2j6ICD5pyq6YCa6L+H5a2m5YiGIDDjgIJcPGJyXD47Pj47Pjs7Pjt0PEAwPHA8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47cDxsPHN0eWxlOz47bDxESVNQTEFZOm5vbmU7Pj4+Ozs7Ozs7Ozs7Oz47Oz47dDw7bDxpPDEzPjs+O2w8dDxAMDw7Ozs7Ozs7Ozs7Pjs7Pjs+Pjt0PHA8cDxsPFRleHQ7VmlzaWJsZTs+O2w86Iez5LuK5pyq6YCa6L+H6K++56iL5oiQ57up77yaO288Zj47Pj47Pjs7Pjt0PEAwPHA8cDxsPFZpc2libGU7UGFnZUNvdW50O18hSXRlbUNvdW50O18hRGF0YVNvdXJjZUl0ZW1Db3VudDtEYXRhS2V5czs+O2w8bzxmPjtpPDE+O2k8MD47aTwwPjtsPD47Pj47cDxsPHN0eWxlOz47bDxESVNQTEFZOm5vbmU7Pj4+Ozs7Ozs7Ozs7Oz47Oz47dDxAMDxwPHA8bDxWaXNpYmxlO1BhZ2VDb3VudDtfIUl0ZW1Db3VudDtfIURhdGFTb3VyY2VJdGVtQ291bnQ7RGF0YUtleXM7PjtsPG88dD47aTwxPjtpPDM+O2k8Mz47bDw+Oz4+O3A8bDxzdHlsZTs+O2w8RElTUExBWTpibG9jazs+Pj47Ozs7Ozs7Ozs7PjtsPGk8MD47PjtsPHQ8O2w8aTwxPjtpPDI+O2k8Mz47PjtsPHQ8O2w8aTwwPjtpPDE+O2k8Mj47aTwzPjtpPDQ+O2k8NT47PjtsPHQ8cDxwPGw8VGV4dDs+O2w85b+F5L+u6K++Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDw5Mzs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w8NTIuNTA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDQwLjU7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPCZuYnNwXDs7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0PjtpPDU+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPOmAieS/ruivvjs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w8NDc7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDQuNTA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDQyLjU7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPCZuYnNwXDs7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0PjtpPDU+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPOmAieS/ruivvijlsJTpm4UpOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwwOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwzOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwwOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwwOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwmbmJzcFw7Oz4+Oz47Oz47Pj47Pj47Pj47dDxAMDw7Ozs7Ozs7Ozs7Pjs7Pjt0PEAwPHA8cDxsPFZpc2libGU7UGFnZUNvdW50O18hSXRlbUNvdW50O18hRGF0YVNvdXJjZUl0ZW1Db3VudDtEYXRhS2V5czs+O2w8bzx0PjtpPDE+O2k8MTA+O2k8MTA+O2w8Pjs+PjtwPGw8c3R5bGU7PjtsPERJU1BMQVk6YmxvY2s7Pj4+Ozs7Ozs7Ozs7Oz47bDxpPDA+Oz47bDx0PDtsPGk8MT47aTwyPjtpPDM+O2k8ND47aTw1PjtpPDY+O2k8Nz47aTw4PjtpPDk+O2k8MTA+Oz47bDx0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzms5Xlrabnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzlt6XnqIvnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzlt6Xnp5Hnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDAuNTA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDznrqHnkIbnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDznu4/mtY7nsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDznkIbnp5Hnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzkvZPogrLnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzmloflrabnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzoibrmnK/nsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzlk7Llrabnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjs+Pjs+Pjt0PEAwPDs7Ozs7Ozs7Ozs+Ozs+O3Q8QDA8cDxwPGw8VmlzaWJsZTtQYWdlQ291bnQ7XyFJdGVtQ291bnQ7XyFEYXRhU291cmNlSXRlbUNvdW50O0RhdGFLZXlzOz47bDxvPHQ+O2k8MT47aTwxPjtpPDE+O2w8Pjs+PjtwPGw8c3R5bGU7PjtsPERJU1BMQVk6YmxvY2s7Pj4+Ozs7Ozs7Ozs7Oz47bDxpPDA+Oz47bDx0PDtsPGk8MT47PjtsPHQ8O2w8aTwwPjtpPDE+O2k8Mj47aTwzPjtpPDQ+O2k8NT47PjtsPHQ8cDxwPGw8VGV4dDs+O2w85ZCI6K6hOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwmbmJzcFw7Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwmbmJzcFw7Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwmbmJzcFw7Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwmbmJzcFw7Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDzmrKE7Pj47Pjs7Pjs+Pjs+Pjs+Pjt0PEAwPHA8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47cDxsPHN0eWxlOz47bDxESVNQTEFZOm5vbmU7Pj4+Ozs7Ozs7Ozs7Oz47Oz47dDxAMDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Ozs7Ozs7Ozs7Pjs7Pjt0PEAwPHA8cDxsPFZpc2libGU7UGFnZUNvdW50O18hSXRlbUNvdW50O18hRGF0YVNvdXJjZUl0ZW1Db3VudDtEYXRhS2V5czs+O2w8bzxmPjtpPDE+O2k8MD47aTwwPjtsPD47Pj47cDxsPHN0eWxlOz47bDxESVNQTEFZOm5vbmU7Pj4+Ozs7Ozs7Ozs7Oz47Oz47dDxAMDxwPHA8bDxWaXNpYmxlO1BhZ2VDb3VudDtfIUl0ZW1Db3VudDtfIURhdGFTb3VyY2VJdGVtQ291bnQ7RGF0YUtleXM7PjtsPG88Zj47aTwxPjtpPDA+O2k8MD47bDw+Oz4+O3A8bDxzdHlsZTs+O2w8RElTUExBWTpub25lOz4+Pjs7Ozs7Ozs7Ozs+Ozs+O3Q8QDA8cDxwPGw8VmlzaWJsZTtQYWdlQ291bnQ7XyFJdGVtQ291bnQ7XyFEYXRhU291cmNlSXRlbUNvdW50O0RhdGFLZXlzOz47bDxvPGY+O2k8MT47aTwwPjtpPDA+O2w8Pjs+Pjs+O0AwPEAwPHA8bDxGb290ZXJUZXh0Oz47bDzmgLvorqHvvJo7Pj47Ozs7Pjs7QDA8cDxsPEhlYWRlclRleHQ7PjtsPOWIm+aWsOWGheWuuTs+Pjs7Ozs+O0AwPHA8bDxIZWFkZXJUZXh0Oz47bDzliJvmlrDlrabliIY7Pj47Ozs7PjtAMDxwPGw8SGVhZGVyVGV4dDs+O2w85Yib5paw5qyh5pWwOz4+Ozs7Oz47Ozs+Ozs7Ozs7Ozs7Pjs7Pjt0PHA8cDxsPFRleHQ7VmlzaWJsZTs+O2w85pys5LiT5Lia5YWxMTUx5Lq6O288dD47Pj47Pjs7Pjt0PHA8cDxsPFZpc2libGU7VGV4dDs+O2w8bzx0PjvmiYDmnInor77nqIvlubPlnYflrabliIbnu6nngrnvvJozLjU0Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlO1RleHQ7PjtsPG88dD475a2m5YiG57up54K55oC75ZKM77yaMjEyLjEwOz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPHQ+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxYSVlPVTs+Pjs+Ozs+O3Q8cDxwPGw8SW1hZ2VVcmw7PjtsPC4vZXhjZWwvMDQxNzIxMTkuanBnOz4+Oz47Oz47Pj47dDxwPGw8VmlzaWJsZTs+O2w8bzxmPjs+PjtsPGk8Mz47PjtsPHQ8QDA8Ozs7Ozs7Ozs7Oz47Oz47Pj47Pj47Pj47PiG5uUroU5R3+QBfF0/MVeknbD21',
# '__VIEWSTATE':'dDwtMTIxNTQzNzk3NTt0PHA8bDxTb3J0RXhwcmVzO3NmZGNiazt6eGNqY3h4cztkZzM7ZHlieXNjajtTb3J0RGlyZTt4aDtjamN4X2xzYjtzdHJfdGFiX2JqZzs+O2w8a2NtYztcZTswO2JqZztcZTthc2M7MDQxNzIxMTk7O3pmX2N4Y2p0al8wNDE3MjExOTs+PjtsPGk8MT47PjtsPHQ8O2w8aTw0PjtpPDEwPjtpPDIzPjtpPDI4PjtpPDM2PjtpPDQwPjtpPDQyPjtpPDQ0PjtpPDQ2PjtpPDQ4PjtpPDUwPjtpPDUyPjtpPDU0PjtpPDU4PjtpPDYwPjtpPDYyPjs+O2w8dDx0PHA8cDxsPERhdGFUZXh0RmllbGQ7RGF0YVZhbHVlRmllbGQ7PjtsPFhOO1hOOz4+Oz47dDxpPDI+O0A8XGU7MjAxNy0yMDE4Oz47QDxcZTsyMDE3LTIwMTg7Pj47Pjs7Pjt0PHQ8cDxwPGw8RGF0YVRleHRG…paw5a2m5YiGOz4+Ozs7Oz47QDA8cDxsPEhlYWRlclRleHQ7PjtsPOWIm+aWsOasoeaVsDs+Pjs7Ozs+Ozs7Pjs7Ozs7Ozs7Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOacrOS4k+S4muWFsTE1MeS6ujtvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxYSVlPVTs+Pjs+Ozs+O3Q8cDxwPGw8SW1hZ2VVcmw7PjtsPC4vZXhjZWwvMDQxNzIxMTkuanBnOz4+Oz47Oz47Pj47dDw7bDxpPDM+Oz47bDx0PEAwPDs7Ozs7Ozs7Ozs+Ozs+Oz4+Oz4+Oz4+Oz4yszFQh1/8lqMLnat0ZbgPIriA8g==',
'ddIXN': '',
'ddIXQ': '',
'btn_zg':'%BF%CE%B3%CC%D7%EE%B8%DF%B3%C9%BC%A8',#这个就特定信息
'ddl_kcxz':'',
}
html = requests.post("自己登录后的网页链接,headers=lheaders,data=Date)一定要在F12里找真正的链接地址#
这时候一定到了特定网页,可以看到特定的成绩信息了,接下来就是提取了,我这个小辣鸡又碰到了问题,东西也太多了吧,标签也一样,emmmmmmmmmmm全部正则试过了总是提取不到,只能一个个正则了所以接下来的代码会比较辣眼睛,大佬请闪避…emmmm那个结果本来是要用表单打印的,可是那个提取完字典只有一个是元组的元素,而且格式不好控制对齐,所以用了以下的格式**
Cyuyan1s=re.findall('<td>JS100031</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td>',html.text,re.S)
Cyuyan2s=re.findall('<td>JS100032</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
aqyyss=re.findall('<td>TX400050</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
ccysxs=re.findall('<td>81356905</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
cxysx=re.findall('<td>81356905</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
dxty1=re.findall('<td>TY100010</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
dxty2=re.findall('<td>TY100020</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
wuli=re.findall('<td>lx140102</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
wuli2=re.findall('<td>LX060102</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
wy1=re.findall('<td>WY100010</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
wy2=re.findall('<td>WY100020</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
dfdy=re.findall('<td>80873069</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
gdsx1=re.findall('<td>LX120111</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
gdsx2=re.findall('<td>LX120121</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
ks=re.findall('<td>JS200110</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
dl=re.findall('<td>JS110100</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
wd=re.findall('<td>JS100292</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
jsll=re.findall('<td>WZ100010</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
jx=re.findall('<td>WZ200010</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
lssx=re.findall('<td>JS100330</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
rssx=re.findall('<td>JS200100</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
sx=re.findall('<td>RW100020</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
xd=re.findall('<td>LX120201</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
xsyzc=re.findall('<td>RW100011</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
jxds=re.findall('<td>RW100030</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
# print("课程名称"+'\t\t'+'课程性质'+'\t\t'+'学分'+'\t\t'+'成绩')
# print(name + "的成绩单")
name = "%D3%E0%E8%F7%ACu"#原网页提取的,输出时解码一下
print(parse.unquote(name, encoding="gbk")+ "的成绩单")
def print_(dicts):
print("------------------------------")
print(dicts[0][0])
print(dicts[0][1])
print(dicts[0][2])
print(dicts[0][3])
print("------------------------------\n")
print_(Cyuyan1s)
print_(Cyuyan2s)
print_(aqyyss)
print_(ccysxs)
print_(cxysx)
print_(dxty1)
print_(dxty2)
print_(wuli)
print_(wuli2)
print_(wy1)
print_(wy2)
print_(dfdy)
print_(gdsx1)
print_(gdsx2)
print_(ks)
print_(dl)
print_(wd)
print_(jsll)
print_(jx)
print_(lssx)
print_(rssx)
print_(sx)
print_(xd)
print_(xsyzc)
print_(jxds)
全部代码,注意其中有几处包括链接都要改成自己对应的链接,因为牵扯学号姓名这些:
import json
import requests
import re
from html.parser import *
import urllib.request
import os
import csv
import urllib
from bs4 import BeautifulSoup
from urllib import parse
username=""#要填自己的学号密码
password=""
webpage = requests.get(url="http://222.24.62.120/default2.aspx")
Cookie = webpage.cookies # 获取网页cookies
headers = {
'User-Agent': r'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36)',
'Upgrade-Insecure-Requests':'1',
'Referer':'http://222.24.62.120/xscjcx.aspx?xh=04172119&xm=%D3%E0%E8%F7%ACu&gnmkdm=N121605'
}
while True:
url = "http://222.24.62.120/CheckCode.aspx" # 验证码所在连接
pic = requests.get(url, cookies=Cookie, headers=headers)
if os.path.exists(r'f://yanzhengma.jpg'):
os.remove(r'f://yanzhengma.jpg')
with open(r'f://yanzhengma.jpg', 'wb')as f:
f.write(pic.content)
f.close()
# username = input("输入用户名: ")
# password = input("输入密码 ")
# os.startfile(r'f:yanzheng.jpg')
ycode = input("输入弹出的验证码: ")
payload = {
'__VIEWSTATE':‘ dDwtMTIxNTQzNzk3NTt0PHA8bDxTb3J0RXhwcmVzO3NmZGNiaztkZzM7ZHlieXNjajtTb3J0RGlyZTt4aDtzdHJfdGFiX2JqZztjamN4X2xzYjt6eGNqY3h4czs+O2w8a2NtYztcZTtiamc7XGU7YXNjOzA0MTcyMTE5O3pmX2N4Y2p0al8wNDE3MjExOTs7MDs+PjtsPGk8MT47PjtsPHQ8O2w8aTw0PjtpPDEwPjtpPDIzPjtpPDI4PjtpPDM2PjtpPDQwPjtpPDQyPjtpPDQ0PjtpPDQ2PjtpPDQ4PjtpPDUwPjtpPDUyPjtpPDU0PjtpPDU4PjtpPDYwPjtpPDYyPjs+O2w8dDx0PHA8cDxsPERhdGFUZXh0RmllbGQ7RGF0YVZhbHVlRmllbGQ7PjtsPFhOO1hOOz4+Oz47dDxpPDI+O0A8XGU7MjAxNy0yMDE4Oz47QDxcZTsyMDE3LTIwMTg7Pj47Pjs7Pjt0PHQ8cDxwPGw8RGF0YVRleHRG…paw5a2m5YiGOz4+Ozs7Oz47QDA8cDxsPEhlYWRlclRleHQ7PjtsPOWIm+aWsOasoeaVsDs+Pjs7Ozs+Ozs7Pjs7Ozs7Ozs7Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOacrOS4k+S4muWFsTE1MeS6ujtvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxYSVlPVTs+Pjs+Ozs+O3Q8cDxwPGw8SW1hZ2VVcmw7PjtsPC4vZXhjZWwvMDQxNzIxMTkuanBnOz4+Oz47Oz47Pj47dDw7bDxpPDM+Oz47bDx0PEAwPDs7Ozs7Ozs7Ozs+Ozs+Oz4+Oz4+Oz4+Oz45Xwe6W3nEdXsATQH3RI0PW9pz3Q==’
'txtUserName': '04172119',
'TextBox2': '***‘,
'txtSecretCode': ycode,
'RadioButtonList1': '%D1%A7%C9%FA',
'Button1': "",
'lbLanguage': '',
'hidPdrs': '',
'hidsc': '',
}
Log_in = r"http://222.24.62.120/default2.aspx"
# Log_in = r""
r = requests.post(url=Log_in, data=payload, headers=headers, cookies=Cookie)
# 用正则算了
pat = r'<title>(.*?)</title>' # 获取标题的正则表达式
x = re.findall(pat, r.text)
if (x[0] == "欢迎使用正方教务管理系统!请登录"):
print("登陆失败")
else:
print("登陆成功")
# print(r.text)
break
lheaders = {
'Accept': r'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding':'gzip, deflate',
'Cache-Control': 'private',
'Content-Length': '81597',
'Content-Type':'application/x-www-form-urlencoded',
'Connection': 'keep-alive',
'Host': '222.24.62.120',
'Upgrade-Insecure-Requests':'1',
'Origin':'http://222.24.62.120',
'User-Agent': r'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; TheWorld 7)',
'Cookie':'ASP.NET_SessionId=qxdtui55wpihvr450kbzxjyf',
'Referer':'http://222.24.62.120/xscjcx.aspx?xh=&xm=%ACu&gnmkdm=N121605'#填自己的学号密码对应的链接哦
}
Date = {
'__EVENTARGUMENT':'',
'__EVENTTARGET':'',
'__VIEWSTATE':'dDwtMTIxNTQzNzk3NTt0PHA8bDxTb3J0RXhwcmVzO3NmZGNiazt6eGNqY3h4cztkZzM7ZHlieXNjajtTb3J0RGlyZTt4aDtjamN4X2xzYjtzdHJfdGFiX2JqZzs+O2w8a2NtYztcZTswO2JqZztcZTthc2M7MDQxNzIxMTk7O3pmX2N4Y2p0al8wNDE3MjExOTs+PjtsPGk8MT47PjtsPHQ8O2w8aTw0PjtpPDEwPjtpPDIzPjtpPDI4PjtpPDM2PjtpPDQwPjtpPDQyPjtpPDQ0PjtpPDQ2PjtpPDQ4PjtpPDUwPjtpPDUyPjtpPDU0PjtpPDU4PjtpPDYwPjtpPDYyPjs+O2w8dDx0PHA8cDxsPERhdGFUZXh0RmllbGQ7RGF0YVZhbHVlRmllbGQ7PjtsPFhOO1hOOz4+Oz47dDxpPDI+O0A8XGU7MjAxNy0yMDE4Oz47QDxcZTsyMDE3LTIwMTg7Pj47Pjs7Pjt0PHQ8cDxwPGw8RGF0YVRleHRGaWVsZDtEYXRhVmFsdWVGaWVsZDs+O2w8a2N4em1jO2tjeHpkbTs+Pjs+O3Q8aTwxMj47QDzlv4Xkv67or7476ZmQ6YCJ6K++O+S7u+mAieivvjvor77lpJblrp7ot7XmlZnlraY76L6F5L+u6K++O+i3qOWtpuenkTvntKDotKjmi5PlsZU75YWs5YWx6YCJ5L+u6K++O+S6uuaWh+e0oOi0qOmZkOmAiTvpgInkv67or7476YCJ5L+u6K++KOWwlOmbhSk7XGU7PjtAPDAxOzAyOzAzOzA0OzA1OzA2OzA3OzA4OzA5OzEwOzExO1xlOz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxcZTs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDtWaXNpYmxlOz47bDzlrablj7fvvJowNDE3MjExOTtvPHQ+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOWnk+WQje+8muS9meaik+eRhDtvPHQ+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOWtpumZou+8muiuoeeul+acuuWtpumZojtvPHQ+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOS4k+S4mu+8mjtvPHQ+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOe9kee7nOW3peeoiztvPHQ+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDzkuJPkuJrmlrnlkJE6Oz4+Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOihjOaUv+ePre+8mue9kee7nDE3MDQ7bzx0Pjs+Pjs+Ozs+O3Q8QDA8cDxwPGw8VmlzaWJsZTs+O2w8bzxmPjs+Pjs+Ozs7Ozs7Ozs7Oz47Oz47dDw7bDxpPDE+O2k8Mz47aTw1PjtpPDc+O2k8OT47aTwxMz47aTwxNT47aTwxNz47aTwyMT47aTwyMz47aTwyND47aTwyNT47aTwyNz47aTwyOT47aTwzMT47aTwzMz47aTwzNT47aTw0Mz47aTw0OT47aTw1Mz47aTw1ND47PjtsPHQ8cDxwPGw8VmlzaWJsZTtUZXh0Oz47bDxvPHQ+O+aJgOmAieWtpuWIhjYw77yb6I635b6X5a2m5YiGNjDvvJvph43kv67lrabliIYw77yb5q2j6ICD5pyq6YCa6L+H5a2m5YiGIDDjgIJcPGJyXD47Pj47Pjs7Pjt0PEAwPHA8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47cDxsPHN0eWxlOz47bDxESVNQTEFZOm5vbmU7Pj4+Ozs7Ozs7Ozs7Oz47Oz47dDw7bDxpPDEzPjs+O2w8dDxAMDw7Ozs7Ozs7Ozs7Pjs7Pjs+Pjt0PHA8cDxsPFRleHQ7VmlzaWJsZTs+O2w86Iez5LuK5pyq6YCa6L+H6K++56iL5oiQ57up77yaO288Zj47Pj47Pjs7Pjt0PEAwPHA8cDxsPFZpc2libGU7UGFnZUNvdW50O18hSXRlbUNvdW50O18hRGF0YVNvdXJjZUl0ZW1Db3VudDtEYXRhS2V5czs+O2w8bzxmPjtpPDE+O2k8MD47aTwwPjtsPD47Pj47cDxsPHN0eWxlOz47bDxESVNQTEFZOm5vbmU7Pj4+Ozs7Ozs7Ozs7Oz47Oz47dDxAMDxwPHA8bDxWaXNpYmxlO1BhZ2VDb3VudDtfIUl0ZW1Db3VudDtfIURhdGFTb3VyY2VJdGVtQ291bnQ7RGF0YUtleXM7PjtsPG88dD47aTwxPjtpPDM+O2k8Mz47bDw+Oz4+O3A8bDxzdHlsZTs+O2w8RElTUExBWTpibG9jazs+Pj47Ozs7Ozs7Ozs7PjtsPGk8MD47PjtsPHQ8O2w8aTwxPjtpPDI+O2k8Mz47PjtsPHQ8O2w8aTwwPjtpPDE+O2k8Mj47aTwzPjtpPDQ+O2k8NT47PjtsPHQ8cDxwPGw8VGV4dDs+O2w85b+F5L+u6K++Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDw5Mzs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w8NTIuNTA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDQwLjU7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPCZuYnNwXDs7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0PjtpPDU+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPOmAieS/ruivvjs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w8NDc7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDQuNTA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDQyLjU7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPCZuYnNwXDs7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0PjtpPDU+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPOmAieS/ruivvijlsJTpm4UpOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwwOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwzOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwwOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwwOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwmbmJzcFw7Oz4+Oz47Oz47Pj47Pj47Pj47dDxAMDw7Ozs7Ozs7Ozs7Pjs7Pjt0PEAwPHA8cDxsPFZpc2libGU7UGFnZUNvdW50O18hSXRlbUNvdW50O18hRGF0YVNvdXJjZUl0ZW1Db3VudDtEYXRhS2V5czs+O2w8bzx0PjtpPDE+O2k8MTA+O2k8MTA+O2w8Pjs+PjtwPGw8c3R5bGU7PjtsPERJU1BMQVk6YmxvY2s7Pj4+Ozs7Ozs7Ozs7Oz47bDxpPDA+Oz47bDx0PDtsPGk8MT47aTwyPjtpPDM+O2k8ND47aTw1PjtpPDY+O2k8Nz47aTw4PjtpPDk+O2k8MTA+Oz47bDx0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzms5Xlrabnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzlt6XnqIvnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzlt6Xnp5Hnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDAuNTA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDznrqHnkIbnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDznu4/mtY7nsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDznkIbnp5Hnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzkvZPogrLnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzmloflrabnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzoibrmnK/nsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDzlk7Llrabnsbs7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDA7Pj47Pjs7Pjs+Pjs+Pjs+Pjt0PEAwPDs7Ozs7Ozs7Ozs+Ozs+O3Q8QDA8cDxwPGw8VmlzaWJsZTtQYWdlQ291bnQ7XyFJdGVtQ291bnQ7XyFEYXRhU291cmNlSXRlbUNvdW50O0RhdGFLZXlzOz47bDxvPHQ+O2k8MT47aTwxPjtpPDE+O2w8Pjs+PjtwPGw8c3R5bGU7PjtsPERJU1BMQVk6YmxvY2s7Pj4+Ozs7Ozs7Ozs7Oz47bDxpPDA+Oz47bDx0PDtsPGk8MT47PjtsPHQ8O2w8aTwwPjtpPDE+O2k8Mj47aTwzPjtpPDQ+O2k8NT47PjtsPHQ8cDxwPGw8VGV4dDs+O2w85ZCI6K6hOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwmbmJzcFw7Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwmbmJzcFw7Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwmbmJzcFw7Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDwmbmJzcFw7Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDzmrKE7Pj47Pjs7Pjs+Pjs+Pjs+Pjt0PEAwPHA8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47cDxsPHN0eWxlOz47bDxESVNQTEFZOm5vbmU7Pj4+Ozs7Ozs7Ozs7Oz47Oz47dDxAMDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Ozs7Ozs7Ozs7Pjs7Pjt0PEAwPHA8cDxsPFZpc2libGU7UGFnZUNvdW50O18hSXRlbUNvdW50O18hRGF0YVNvdXJjZUl0ZW1Db3VudDtEYXRhS2V5czs+O2w8bzxmPjtpPDE+O2k8MD47aTwwPjtsPD47Pj47cDxsPHN0eWxlOz47bDxESVNQTEFZOm5vbmU7Pj4+Ozs7Ozs7Ozs7Oz47Oz47dDxAMDxwPHA8bDxWaXNpYmxlO1BhZ2VDb3VudDtfIUl0ZW1Db3VudDtfIURhdGFTb3VyY2VJdGVtQ291bnQ7RGF0YUtleXM7PjtsPG88Zj47aTwxPjtpPDA+O2k8MD47bDw+Oz4+O3A8bDxzdHlsZTs+O2w8RElTUExBWTpub25lOz4+Pjs7Ozs7Ozs7Ozs+Ozs+O3Q8QDA8cDxwPGw8VmlzaWJsZTtQYWdlQ291bnQ7XyFJdGVtQ291bnQ7XyFEYXRhU291cmNlSXRlbUNvdW50O0RhdGFLZXlzOz47bDxvPGY+O2k8MT47aTwwPjtpPDA+O2w8Pjs+Pjs+O0AwPEAwPHA8bDxGb290ZXJUZXh0Oz47bDzmgLvorqHvvJo7Pj47Ozs7Pjs7QDA8cDxsPEhlYWRlclRleHQ7PjtsPOWIm+aWsOWGheWuuTs+Pjs7Ozs+O0AwPHA8bDxIZWFkZXJUZXh0Oz47bDzliJvmlrDlrabliIY7Pj47Ozs7PjtAMDxwPGw8SGVhZGVyVGV4dDs+O2w85Yib5paw5qyh5pWwOz4+Ozs7Oz47Ozs+Ozs7Ozs7Ozs7Pjs7Pjt0PHA8cDxsPFRleHQ7VmlzaWJsZTs+O2w85pys5LiT5Lia5YWxMTUx5Lq6O288dD47Pj47Pjs7Pjt0PHA8cDxsPFZpc2libGU7VGV4dDs+O2w8bzx0PjvmiYDmnInor77nqIvlubPlnYflrabliIbnu6nngrnvvJozLjU0Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlO1RleHQ7PjtsPG88dD475a2m5YiG57up54K55oC75ZKM77yaMjEyLjEwOz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPHQ+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxYSVlPVTs+Pjs+Ozs+O3Q8cDxwPGw8SW1hZ2VVcmw7PjtsPC4vZXhjZWwvMDQxNzIxMTkuanBnOz4+Oz47Oz47Pj47dDxwPGw8VmlzaWJsZTs+O2w8bzxmPjs+PjtsPGk8Mz47PjtsPHQ8QDA8Ozs7Ozs7Ozs7Oz47Oz47Pj47Pj47Pj47PiG5uUroU5R3+QBfF0/MVeknbD21',
# '__VIEWSTATE':'dDwtMTIxNTQzNzk3NTt0PHA8bDxTb3J0RXhwcmVzO3NmZGNiazt6eGNqY3h4cztkZzM7ZHlieXNjajtTb3J0RGlyZTt4aDtjamN4X2xzYjtzdHJfdGFiX2JqZzs+O2w8a2NtYztcZTswO2JqZztcZTthc2M7MDQxNzIxMTk7O3pmX2N4Y2p0al8wNDE3MjExOTs+PjtsPGk8MT47PjtsPHQ8O2w8aTw0PjtpPDEwPjtpPDIzPjtpPDI4PjtpPDM2PjtpPDQwPjtpPDQyPjtpPDQ0PjtpPDQ2PjtpPDQ4PjtpPDUwPjtpPDUyPjtpPDU0PjtpPDU4PjtpPDYwPjtpPDYyPjs+O2w8dDx0PHA8cDxsPERhdGFUZXh0RmllbGQ7RGF0YVZhbHVlRmllbGQ7PjtsPFhOO1hOOz4+Oz47dDxpPDI+O0A8XGU7MjAxNy0yMDE4Oz47QDxcZTsyMDE3LTIwMTg7Pj47Pjs7Pjt0PHQ8cDxwPGw8RGF0YVRleHRG…paw5a2m5YiGOz4+Ozs7Oz47QDA8cDxsPEhlYWRlclRleHQ7PjtsPOWIm+aWsOasoeaVsDs+Pjs7Ozs+Ozs7Pjs7Ozs7Ozs7Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPOacrOS4k+S4muWFsTE1MeS6ujtvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxYSVlPVTs+Pjs+Ozs+O3Q8cDxwPGw8SW1hZ2VVcmw7PjtsPC4vZXhjZWwvMDQxNzIxMTkuanBnOz4+Oz47Oz47Pj47dDw7bDxpPDM+Oz47bDx0PEAwPDs7Ozs7Ozs7Ozs+Ozs+Oz4+Oz4+Oz4+Oz4yszFQh1/8lqMLnat0ZbgPIriA8g==',
'ddIXN': '',
'ddIXQ': '',
'xh':'04172119',
'xm':'%D3%E0%E8%F7%ACu',
'ddl_kcxz':'',
'gnmkdm':'N121605',
'btn_zg':'%BF%CE%B3%CC%D7%EE%B8%DF%B3%C9%BC%A8',
}
html = requests.post("http://222.24.62.120/xscjcx.aspx?xh=04172119&xm=%D3%E0%E8%F7%ACu&gnmkdm=N121605",
headers=lheaders,data=Date)
# print(html.text)
#
# soup = BeautifulSoup(html.text, 'lxml')
# nums = soup.find_all(attrs={'class': 'datelisthead'})
# soup=BeautifulSoup(html.text,"lxml")
# name=soup.find(id="lbl_xm")
# name=name.text
Cyuyan1s=re.findall('<td>JS100031</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td>',html.text,re.S)
Cyuyan2s=re.findall('<td>JS100032</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
aqyyss=re.findall('<td>TX400050</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
ccysxs=re.findall('<td>81356905</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
cxysx=re.findall('<td>81356905</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
dxty1=re.findall('<td>TY100010</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
dxty2=re.findall('<td>TY100020</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
wuli=re.findall('<td>lx140102</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
wuli2=re.findall('<td>LX060102</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
wy1=re.findall('<td>WY100010</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
wy2=re.findall('<td>WY100020</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
dfdy=re.findall('<td>80873069</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
gdsx1=re.findall('<td>LX120111</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
gdsx2=re.findall('<td>LX120121</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
ks=re.findall('<td>JS200110</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
dl=re.findall('<td>JS110100</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
wd=re.findall('<td>JS100292</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
jsll=re.findall('<td>WZ100010</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
jx=re.findall('<td>WZ200010</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
lssx=re.findall('<td>JS100330</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
rssx=re.findall('<td>JS200100</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
sx=re.findall('<td>RW100020</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
xd=re.findall('<td>LX120201</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
xsyzc=re.findall('<td>RW100011</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
jxds=re.findall('<td>RW100030</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>',html.text,re.S)
# print("课程名称"+'\t\t'+'课程性质'+'\t\t'+'学分'+'\t\t'+'成绩')
# print(name + "的成绩单")
name = "%D3%E0%E8%F7%ACu"
print(parse.unquote(name, encoding="gbk")+ "的成绩单")
def print_(dicts):
print("------------------------------")
print(dicts[0][0])
print(dicts[0][1])
print(dicts[0][2])
print(dicts[0][3])
print("------------------------------\n")
print_(Cyuyan1s)
print_(Cyuyan2s)
print_(aqyyss)
print_(ccysxs)
print_(cxysx)
print_(dxty1)
print_(dxty2)
print_(wuli)
print_(wuli2)
print_(wy1)
print_(wy2)
print_(dfdy)
print_(gdsx1)
print_(gdsx2)
print_(ks)
print_(dl)
print_(wd)
print_(jsll)
print_(jx)
print_(lssx)
print_(rssx)
print_(sx)
print_(xd)
print_(xsyzc)
print_(jxds)
部分结果:(又一次要暴露学渣的事实)
余梓瑄的成绩单
------------------------------
C语言程序设计Ⅰ
必修课
3.0
90
------------------------------
------------------------------
C语言程序设计Ⅱ
必修课
4.0
92
------------------------------
------------------------------
安全与隐私
选修课
0.5
合格
------------------------------
------------------------------
抽象艺术学
选修课(尔雅)
2
97
------------------------------
------------------------------
抽象艺术学
选修课(尔雅)
2
97
------------------------------
------------------------------
大学物理B
必修课
4.0
69
------------------------------
------------------------------
大学物理实验B
选修课
2.0
87
------------------------------
------------------------------
大学英语I
必修课
4.0
81
------------------------------
------------------------------
东方电影
选修课(尔雅)
1
99
------------------------------
------------------------------
高等数学AI
必修课
6.0
93
------------------------------
------------------------------
高等数学AII
必修课
6.0
85
------------------------------
------------------------------
高级语言课程设计
必修课
1.5
良好
------------------------------
------------------------------
计算机科学导论
选修课
2.0
76
------------------------------
------------------------------
计算机网络导论B
必修课
2.0
81
------------------------------
------------------------------
军事理论
必修课
1
99
------------------------------
------------------------------
军训
必修课
2.0
良好
------------------------------
------------------------------
离散数学
必修课
4.0
91
------------------------------
------------------------------
认识实习
必修课
0.5
中等
------------------------------
------------------------------
思想道德修养与法律基础
必修课
3.0
85
------------------------------
------------------------------
线性代数A
必修课
3.0
91
------------------------------
------------------------------
形势与政策I
必修课
0.5
99
------------------------------
------------------------------
中国近现代史纲要
必修课
2.0
80
------------------------------