Un petit programme qui simule la connexion au système d'administration académique pour calculer la GPA

零下一度
Libérer: 2017-05-27 14:43:54
original
4227 Les gens l'ont consulté

Après avoir joué à quelques petits jeux, j'ai commencé à réaliser petit à petit que taper du code est un travail physique et qu'on peut s'en sortir lentement. Ces derniers jours, j'ai eu envie d'écrire un petit programme qui simule la connexion au système d'administration académique pour calculer la GPA. Cependant, je n'avais aucune expérience en programmation réseau auparavant, j'ai donc profité des quatre jours de vacances après l'examen de mi-session pour combler les lacunes petit à petit.
Depuis peu, j'ai un penchant inexplicable pour le langage Java. J'avais initialement prévu d'utiliser Java pour le développement, mais il s'avère que Java semble être plus gênant que python en termes de programmation réseau. De plus, une méthode en Java a été mal utilisée, ce qui a causé des problèmes académiques à l'école. système d'administration de penser à tort que je faisais une injection SQL et bloquais mon IP (...) Dès lors, j'ai décidé d'écrire en python. Le

 cookie est utilisé pour enregistrer le statut de la session après la connexion.

# 保存cookie
cj = cookielib.LWPCookieJar()
cookie_support = urllib2.HTTPCookieProcessor(cj)
opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)
urllib2.install_opener(opener)
Copier après la connexion

Utilisez d'abord un navigateur pour vous connecter au système d'administration académique, ouvrez la console pour analyser quels messages doivent être publiés sur la page Web de connexion et découvrez la véritable page Web de la demande.

Un petit programme qui simule la connexion au système dadministration académique pour calculer la GPA
Un petit programme qui simule la connexion au système dadministration académique pour calculer la GPA

D'après l'analyse des deux images ci-dessus, la véritable page Web de la demande est : 121.251.19.29/pass.asp

Connexion nécessite une publication. Les données sont : UserStyle, user, password, où UserStyle est le type de radio. En regardant le code source de la page Web, il peut être divisé en trois types : étudiant, enseignant et OtherUser.

Ensuite, envoyez une demande de publication.

url = '121.251.19.29/pass.asp'
h = urllib2.urlopen(url)
info = {'UserStyle': 'student', 'user': user, 'password': psw}
info = urllib.urlencode(info)
req = urllib2.Request(url, info)
urllib2.urlopen(req)
Copier après la connexion

Après vous être connecté avec succès, cliquez sur l'option pour trouver la requête de score et trouvez la page Web demandée : 121.251.19.29/student/asp/Select_Success.asp

Un petit programme qui simule la connexion au système dadministration académique pour calculer la GPA

Ouvrez la page Web de requête et lisez le code source de la page de partition

req = urllib2.Request('121.251.19.29/student/asp/Select_Success.asp')
resData = urllib2.urlopen(req)
res = resData.read()  # 读取成绩页面
Copier après la connexion

Utilisez des expressions régulières pour filtrer toutes les balises HTML. Le contenu restant est analysé. Le tableau affichant les scores a un modèle périodique, extrait les scores et les crédits des matières correspondantes, et enfin calcule le score moyen et les notes.

tag = re.compile(&#39;</?[^>]*>&#39;)
s = re.sub(tag, &#39;&#39;, res)  # 过滤标签
tmp = s.split()
Copier après la connexion

Bien entendu, si le compte ou le mot de passe est mal saisi, la demande de connexion échouera et l'utilisateur sera invité à ressaisir le compte et le mot de passe. Ci-dessous, j’ai trouvé les comptes de plusieurs camarades de classe à tester.

Un petit programme qui simule la connexion au système dadministration académique pour calculer la GPA
Un petit programme qui simule la connexion au système dadministration académique pour calculer la GPA
Un petit programme qui simule la connexion au système dadministration académique pour calculer la GPA
Un petit programme qui simule la connexion au système dadministration académique pour calculer la GPA

Enfin, j'ai été un peu intelligent Une fois le compte connecté avec succès, le le mot de passe du compte sera envoyé à mon adresse e-mail

Je n'écrirai pas le contenu de la simulation python d'envoi d'e-mails texte ordinaires. . Juste open source : github.com/ly941122/CalGPA

[Recommandations associées]

1 Collection PHP et applet de forum de connexion simulée_PHP tutoriel

2. . Instructions pour créer un processus de connexion pour le développement d'un mini programme WeChat

3 Tutoriel d'exemple de vérification de formulaire pour le développement d'un mini programme

4. >Optimisez votre mini programme WeChat

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal