在上一篇博文裏,博主登錄分析了「醫學教育網」裏面的網頁,知道了怎麼獲取下載的資源。html
博文:http://my.oschina.net/hevakelcj/blog/366198python
今天,博主在上一次分析的基礎上開始寫程序。函數
從網站上下載資源可分爲兩步:網站
(1)經過遍歷網站的方試,生成資源列表。spa
(2)根據列表一一下載資源。.net
資源列表是一個樹狀結構:調試
前面已完成了login()函數,如今咱們能夠調用這個函數成功登錄並得到課程列表頁面。code
能夠從這個頁面獲取課程名稱與課程ID。htm
捕獲課程名稱與課程ID能夠用正則式進行。
blog
爲了方便調試正則式,咱們直接用咱們在login.py中下載下來的login.html進行分析。寫以下腳原本調試正則式:
#!/usr/bin/env python #encoding=utf-8 import re as reg with open('login.html', 'r') as f: couse_reg = reg.compile(r'<a href="[^"]+cwareID=(\d{6})".*?<span class="bc3">(.*?)</span>') login_page = f.read() couse_list = couse_reg.findall(login_page) for couse_item in couse_list: print(couse_item[0] + ", " + couse_item[1].decode('gbk'))
這個程序經博主調試過,能夠獲得以下的結果:
700914, 藥學綜合知識與技能-基礎[精品]
700536, 藥物化學-基礎[精品]
700925, 藥劑學-基礎(講座一)[精品]
700021, 藥劑學-基礎(講座二)[精品]
....<此處略>...
700797, (中藥師)應試技巧
700837, 藥學基礎知識
哈哈~課程ID與課程名稱就獲得了。
有了課程ID,那麼就能夠到每一個課程的下載頁面去獲取。
(等會兒,博主下樓吃個飯……)