python,shell,crontabによる成績自動照会とメール通知の更新

2142 ワード

一、前言
最近期末成績を待って、少し焦って、成績が更新されたら直接メールで知らせてくれればよかったのに、2日間勉強したpythonを思い出して、2日間勉強したshellと名前を覚えたcrontabを勉強して、試して、成功しました~~~~
二、ツールの紹介
python:カリキュラムシステムのページに登り、自動ログインと成績データ抽出を実現する.
shell:pythonコードの実行と成績更新判断(更新メールを送信するかどうかを決定する);
crontab:linuxの下の計画任務(とても使いやすい)、プログラムのタイミング実行を実現します;
三、参考内容
書く前に何を探していたかを話してみましょう.
どのようにPython、C#などの言語で静的なホームページをつかむ+動的なホームページをつかむ+模擬登録サイトを実現するか(かなり詳しく書かれていて、中の各種リンクはすべてクリックして見たほうがいいです.灰はよく役に立ちます);
Pythonトランスコード問題の解決方法(はい、私は何もできません);
HTML+CSS基礎コース(htmlだけ見て、サイトのログインロジックを判断するときに役立つ);
Linuxの計画タスク-Crontab(慕課網のチュートリアル、ずいぶん前に見た);
また、ブラウザの開発者オプションは必ず使います.
四、実現過程
まずコードを貼って、手順に時間があったら補充します..の
Talk is cheap, show me the code!
1,pythonセクション
#!/usr/bin/python
# ^_^ coding: utf-8 ^_^
import cookielib
import urllib2
import re
#login
loginUrl = "http://jwxt.sdu.edu.cn:7890/pls/wwwbks/bks_login2.login?stuid=201100090087&pwd=××××";
cj = cookielib.CookieJar();
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj));
urllib2.install_opener(opener);
resp = urllib2.urlopen(loginUrl);
#for index, cookie in enumerate(cj):
    #print '[',index, ']',cookie;
#get my grades
gradeUrl = "http://jwxt.sdu.edu.cn:7890/pls/wwwbks/bkscjcx.curscopre";
req = urllib2.Request(gradeUrl);
resp = urllib2.urlopen(req);
grade = resp.read();
grade = grade.decode('gb2312').encode('utf-8');
#print grade;
#parse the html
m = re.findall(r'

([^

',grade,re.I|re.M); if m: for x in m: print x;

2、shell部分
cd ~/python
python getGrade.py > grade_new.txt
d="`diff grade.txt grade_new.txt`"
if [ -z "$d" ]; then
	mv grade_new.txt grade.txt
else
	cat grade_new.txt | mail -s 'Grades' -t [email protected]
	mv grade_new.txt grade.txt
fi
3、crontab部分
$ crontab -e
最後に行を追加:
1-59/5 * * * */home/zzz/linux/grade.sh
:wq保存終了5、後記
私の山東大学の本科は読んで、コードはただ私達の学校の教務システムに適用して、もしその他に登録する必要があるウェブサイト(前提はあなたがアカウントのパスワードがあることです)に使用したいならば、参考内容の第1編を見て、ウェブサイトの登録のロジックを理解した後にpythonコードを修正してすぐ~~
第一篇博客,请多指教~HELLO CSDN!