基于python3.6, 用到了urllib庫(py自帶無需安裝)以及BeautifulSoup庫(命令行下運行:pip3 install bs4)。這里需要講的是,py2與3的一個區(qū)別是,py2中的urllib2在Python3已拆分更名為urllib.request和urllib.error
學(xué)校教務(wù)處的網(wǎng)址是 http://zhjw.scu.edu.cn/login.jsp。在Chrome下按F12, 
輸入學(xué)號密碼登錄教務(wù)處,會看到在NetWork網(wǎng)絡(luò)監(jiān)聽中有個LoginAction.do

登陸的過程需要表單。在Headers里可以看到,請求的URL是http://zhjw.scu.edu.cn/loginAction.do,請求方式為Post。往下拉會看到兩個參數(shù)zjh(學(xué)號)和mm(密碼)需要提交到這個URL:

啊哈~所以登錄只要把這兩個參數(shù)提交到請求的URL就行了~
· Chrome的網(wǎng)絡(luò)監(jiān)聽中如何找到需要查看的文件? 這個問題困擾了我一段時間,期間我也去網(wǎng)上聽各種爬蟲公開課。我的理解是:登錄是需要提交學(xué)號和密碼的,所以請求方式是Post,文件名應(yīng)該是Login之類的 · 而在這個文件里有提交的表單的參數(shù),zjh就是學(xué)號,mm是密碼
審查一下成績,會看到: 2015-2016學(xué)年秋(兩學(xué)期) 那么,完整的URL就是http://zhjw.scu.edu.cn/gradeLnAllAction.do?type=ln&oper=qbinfo 當(dāng)然,這個URL能直接進入,需要cookie,因此需要在代碼里加入。

能得到成績的數(shù)據(jù)了,接下來就是怎么解析了。由于這個小項目的用戶估計只有一個人,對速度沒啥要求,就用了BeautifulSoup庫。
BeautifulSoup提供一些簡單的、python式的函數(shù)用來處理導(dǎo)航、搜索、修改分析樹等功能。它是一個工具箱,通過解析文檔為用戶提供需要抓取的數(shù)據(jù),因為簡單,所以不需要多少代碼就可以寫出一個完整的應(yīng)用程序。 BeautifulSoup自動將輸入文檔轉(zhuǎn)換為Unicode編碼,輸出文檔轉(zhuǎn)換為utf-8編碼。你不需要考慮編碼方式,除非文檔沒有指定一個編碼方式,這時,BeautifulSoup就不能自動識別編碼方式了。然后,你僅僅需要說明一下原始編碼方式就可以了。 BeautifulSoup已成為和lxml、html6lib一樣出色的python解釋器,為用戶靈活地提供不同的解析策略或強勁的速度。
現(xiàn)在,查看http://zhjw.scu.edu.cn/gradeLnAllAction.do?type=ln&oper=qbinfo 及其網(wǎng)頁源碼,會看到每個科目成績有課程號,課序號……成績等7個屬性。每個屬性都包含在中

有了這些數(shù)據(jù),接下來可以做一些擴展。<( ̄︶ ̄)↗[GO!] 如果有什么不好的地方還請不吝賜教,有什么問題還請指出~
新聞熱點
疑難解答