模拟登陆江西理工大学教务系统

验证码这块,没有进行处理,暂时可视化输出显示,手动输入

 1 # -*- coding:utf-8 -*-
 2 # author:zxy
 3 # date:2018-12-24
 4 # update:2018-12-26
 5 
 6 #https://cuiqingcai.com
 7 import requests
 8 import selenium
 9 from selenium import webdriver
10 from time import sleep
11 from selenium.webdriver.support.ui import WebDriverWait
12 from selenium.webdriver.support import expected_conditions as EC
13 from selenium.webdriver.common.by import By
14 from bs4 import BeautifulSoup as bs
15 from bs4 import BeautifulSoup
16 from PIL import Image
17 
18 def getCookie(url):
19     r=requests.get(url)
20     cookie=r.cookies
21     soup=BeautifulSoup(r.text,"lxml")
22     # print(r.text)
23     viewstate=soup.find('input')['value']
24     print(viewstate)
25 
26     return cookie,viewstate
27 
28 def getCheckCode(url,headers,cookies):
29     r=requests.get(url,headers=headers,cookies=cookies)
30     with open('code.jpg','wb') as f:
31         f.write(r.content)
32     im=Image.open('code.jpg')
33     im.show()
34     code=input("请输入验证码")
35     return code
36 
37 def login(url,code,viewstate,headers,cookies):
38     formData={
39         '__VIEWSTATE': viewstate,
40         'txtUserName': '201*****',
41         'TextBox2': '************',
42         'txtSecretCode': code,
43         'RadioButtonList1': '学生'.encode('gb2312'),
44         'Button1': '',
45         'lbLanguage': '',
46         'hidPdrs': '',
47         'hidsc': ''
48     }
49     r=requests.post(url,data=formData,headers=headers,cookies=cookies)
50     r.encoding='gb2312'
51     soup=BeautifulSoup(r.text,'lxml')
52     welStr=soup.find(id='Label3').get_text()
53     name=soup.find(id='xhxm').get_text()
54     print(welStr,name)
55 
56 def main():
57     headers = {
58                 'User-Agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chr"
59                                   "ome/67.0.3396.99 Safari/537.36"
60             }
61 
62     url = "http://ojw.jxust.edu.cn/"
63     cookies,viewstate=getCookie(url)
64     codeUrl = "http://ojw.jxust.edu.cn/CheckCode.aspx"
65     loginUrl="http://ojw.jxust.edu.cn/default2.aspx"
66     code=getCheckCode(codeUrl,headers,cookies)
67 
68     login(loginUrl,code,viewstate,headers,cookies)
69 
70 
71 
72 if __name__ == '__main__':
73     main()

 

posted @ 2019-04-04 07:19  浅忆~  阅读(386)  评论(0编辑  收藏  举报