在上一篇博文里,博主登录分析了“医学教育网”里面的网页,知道了怎么获取下载的资源。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,那么就能够到每一个课程的下载页面去获取。
(等会儿,博主下楼吃个饭……)