Super new learning pass simulation login non-selenium version
'''
# -*- coding: utf-8 -*-
# @Time : 2021/1/11 15:59
# @Author : mint
# @Email : [email protected]
# @FileName : ooo
# @Description :
'''
##
import base64
import time
import requests
from PIL import Image
from loguru import logger
import os
import copy
class Cahoxing():
def __init__(self, name, password):
self.username = name
self.password = password
self.session = requests.Session()
self.base_url = 'http://passport2.chaoxing.com/login?refer=http%3A%2F%2Fi.mooc.chaoxing.com'
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36'
}
def code(self, cookies):
logger.info('获取验证码中')
url = "http://passport2.chaoxing.com/num/code?{}".format(
int(time.time() * 1000))
response = requests.get(url, headers=self.headers, cookies=cookies)
if response.status_code == 200:
logger.info('获取验证成功')
with open(f'{os.getcwd()}/code.jpg', 'wb+') as f:
f.write(response.content)
logger.info('验证码保存成功')
im = Image.open('./code.jpg')
im.show()
else:
logger.info('获取验证码失败')
def login(self):
formdata = {}
username = {'uname': self.username}
password = {'password': base64.b64encode(
self.password.encode('utf-8')).decode()}
otherdata = {
'refer_0x001': 'http%3A%2F%2Fi.mooc.chaoxing.com',
'pid': ' -1',
'pidName': '',
'fid': '31328',
'fidName': '',#学校名
'allowJoin': '0',
'isCheckNumCode': '1',
'f': '0',
'productid': '',
't': 'true',
}
formdata.update(otherdata)
formdata.update(username)
formdata.update(password)
formdata.update({'verCode': ''})
form_data = copy.deepcopy(formdata)
print(form_data)
response = self.session.post(
self.base_url, data=form_data, headers=self.headers, verify=False)
cookies = response.cookies
self.code(cookies)
logger.info('请手动输入验证码:')
code = str(input())
numcode = {'numcode': code}
formdata.update(numcode)
form_data = copy.deepcopy(formdata)
print(form_data)
response = self.session.post(
self.base_url, data=form_data, headers=self.headers, verify=False)
cookies = response.cookies
response = self.session.get(
'https://mooc1-1.chaoxing.com/coursedata?classId=15215780&courseId=207578076&type=1&ut=s&enc=f7e07d5f9a79a52852ff700365f1de2c&cpi=40862089&openc=7c31d1deb6c0dbde6cc06f97de786aa6',
cookies=cookies,
headers=self.headers)#登陆后的随意·选取的页面打印
print(response.text)
if __name__ == '__main__':
username = ''#账号
passwod = ''#密码
p = Cahoxing(username, passwod)
p.login()
result:
The verification code must also be entered manually, or you can train the model recognition by yourself.
It is only for learning and exchange.
If you have any questions, please leave a message to discuss