python爬蟲之爬取教務(wù)網(wǎng)成績(jī)

python爬蟲之爬取教務(wù)網(wǎng)成績(jī)

這次的內(nèi)容主要就是講述自己的第一只python爬蟲宿稀,而所要爬取的對(duì)象就是學(xué)校的教務(wù)網(wǎng)。促使我寫出了這樣一只python爬蟲的主要的原因就是學(xué)校查成績(jī)太過于麻煩赖捌。成績(jī)不是一次性的全部公布祝沸,而是一科一科的不定時(shí)的公布,所以我就決定自己編寫一只爬蟲,讓它自己運(yùn)行罩锐,然后將爬取得到的成績(jī)自動(dòng)的發(fā)送到郵箱里奉狈。這樣我就不用自己再去教務(wù)網(wǎng)查成績(jī)。好了涩惑,廢話不多說仁期,開始吧!

第一步:
在開始真正的編寫爬蟲之前我們要首先明白我們平時(shí)手動(dòng)的查詢成績(jī)是怎樣實(shí)現(xiàn)的竭恬,大概的過程是怎樣蟀拷,提交的數(shù)據(jù)有哪些,數(shù)據(jù)是提交到哪兒的萍聊。為了弄明白這些我們可以利用一個(gè)插件问芬,即HttpFox,可以利用火狐瀏覽器安裝這個(gè)插件寿桨,其他的便不再贅述此衅。
第二步:
得到上面要求的數(shù)據(jù)后便開始編寫爬蟲代碼。主要如下:

#-*- coding:utf-8 -*-

import urllib
import urllib2
import cookielib
from bs4 import BeautifulSoup
from email.mime.text import MIMEText 
import smtplib 
from email.header import Header

#Login and Query
def login(user_name,pass_word,efdf):
        #get cookie
        cookie = cookielib.CookieJar()
        opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
        #login data
        postdata = urllib.urlencode({
            "_VIEWSTATEGEN":"CAA0A5A7",
            "Sel_Type":"STU",
            "txt_dsdsdsdjkjkjc":user_name,
            "txt_dsdfdfgfouyy":pass_word,
            "txt_ysdsdsdskgf":"",
            "pcInfo":"", 
            "typeName":"",
            "aerererdsdxcxdfgfg":"",
            "efdfdfuuyyuuckjg":efdf
            })

        # Login
        loginUrl = "http://202.202.1.176:8080/_data/index_login.aspx"
        html1 = opener.open(loginUrl,postdata)

        # Query score
        gradeUrl2 = "http://202.202.1.176:8080/xscj/Stu_MyScore_rpt.aspx"
        postdata2 = urllib.urlencode({
            "sel_xn":"2016",
            "sel_xq":"0",
            "SJ":"0",
            "SelXNXQ":"2",
            "zfx_flag":"0",
            "zxf":"0"
            })
        html2 = opener.open(gradeUrl2,postdata2)

        #deal data
        soup = BeautifulSoup(html2.read(),"html.parser")
        content = soup.select('td')

        # output result
        str_content='Scores\n'
        i=0
        while i<len(content):
            if(i==0 or i==1):
                print content[i].text
                str_content=str_content+content[i].text+'\n'
                i=i+1
            else:
                for j in range(10):
                    if (i+j) < len(content):
                        print (content[i+j].text),
                        str_content = str_content+content[i+j].text+'     '
                        if j == 9:
                            print ("\n")
                            str_content = str_content+'\n'
                    else:
                        break
                i = i+10
        return str_content

#send email
def Send_email(receiver,send_content):
        mail_host="smtp.qq.com"
        mail_user="1432864950@qq.com"
        mail_pass="************"     #這兒是郵箱的授權(quán)碼

        message=MIMEText(send_content,'plain','utf-8')
        message['From']=Header(mail_user,'utf-8')
        message['To']=Header(receiver,'utf-8')

        subject = 'Score'
        message['Subject']=Header(subject,'utf-8')
        try:
            smtpObj = smtplib.SMTP_SSL(mail_host,465)
            smtpObj.login(mail_user,mail_pass)
            smtpObj.sendmail(mail_user,receivers,message.as_string())
            smtpObj.quit()
            return ['Send email success']
        except smtplib.SMTPException,e:
            return ['There must have some error']
        return 

result1 = login("20154302","*****","70982C84EDDBBDBF2F28546AF2A6FA")
Send_email("3344963462@qq.com",result1)

這篇文章并不是一篇python爬蟲的教程文章亭螟,只是用于記錄我自己的一些經(jīng)歷挡鞍,所以有很多的細(xì)節(jié)的地方都沒有講解。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末预烙,一起剝皮案震驚了整個(gè)濱河市墨微,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌扁掸,老刑警劉巖翘县,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異谴分,居然都是意外死亡锈麸,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門牺蹄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忘伞,“玉大人,你說我怎么就攤上這事沙兰∶ツ危” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵鼎天,是天一觀的道長(zhǎng)舀奶。 經(jīng)常有香客問我,道長(zhǎng)训措,這世上最難降的妖魔是什么伪节? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮绩鸣,結(jié)果婚禮上怀大,老公的妹妹穿的比我還像新娘。我一直安慰自己呀闻,他們只是感情好化借,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捡多,像睡著了一般蓖康。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上垒手,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天蒜焊,我揣著相機(jī)與錄音,去河邊找鬼科贬。 笑死泳梆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的榜掌。 我是一名探鬼主播优妙,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼憎账!你這毒婦竟也來了套硼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤胞皱,失蹤者是張志新(化名)和其女友劉穎邪意,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體反砌,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抄罕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了于颖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呆贿。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖森渐,靈堂內(nèi)的尸體忽然破棺而出做入,到底是詐尸還是另有隱情,我是刑警寧澤同衣,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布竟块,位于F島的核電站,受9級(jí)特大地震影響耐齐,放射性物質(zhì)發(fā)生泄漏浪秘。R本人自食惡果不足惜蒋情,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望耸携。 院中可真熱鬧棵癣,春花似錦、人聲如沸夺衍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沟沙。三九已至河劝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間矛紫,已是汗流浹背赎瞎。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留颊咬,地道東北人煎娇。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像贪染,于是被迫代替她去往敵國(guó)和親缓呛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容