医学教育网批量资源下载程序之——获取下载列表

从网站上下载资源可分为两步:

(1)通过遍历网站的方试,生成资源列表。

(2)根据列表一一下载资源。

资源列表是一个树状结构:

前面已完成了login()函数,现在我们可以调用这个函数成功登陆并获得课程列表页面。

可以从这个页面获取课程名称与课程ID。

捕获课程名称与课程ID可以用正则式进行。

为了方便调试正则式,我们直接用我们在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,那么就可以到每个课程的下载页面去获取。

(等会儿,博主下楼吃个饭……)

时间: 2025-01-31 23:02:51

医学教育网批量资源下载程序之——获取下载列表的相关文章

医学教育网批量资源下载程序之——登陆

首先申明 To www.med66.com网站设计师:我只是想批量下载已花钱购买的资源罢了,没有恶意. 12-18 今晚接到老姐的电话,说她已在"医学教育网"订购了不少视频,要我帮她将所有的视频都下载下来. 我看了一下,里面有24门科目,每门科目有40多节.要我手动一个一个下,还不如让我去死. 这种重复的事情还是让程序来做吧!这里开一篇博客直播编写的过程. 被爬网址:http://www.med66.com/ 前几天我刚做完一个Qihuiwang的爬虫软件.这次我评估了一下,这次要做的

下载程序 边获取数据边生成Local的文件,还是等数据获取完后,再去生成Local文件?

问题描述 我个人兴趣,想做个下载器,假如等数据获取完后,再去生成Local文件,如果文件太大的话,会把内存吃光,假如边获取数据边生成Local的文件,不知道这样会不会影响到我Getfile的效率?谢谢 解决方案 解决方案二:我就是前期不清楚,看你可能是能下载了,我觉得你这个问题不难,咱二个互相探讨探讨行否我的帖子http://topic.csdn.net/u/20090111/09/d045db27-a2ff-43ae-9c44-7618931be0a6.html解决方案三:没有知道的人吗??解

更快更稳定 玩转傲游新版下载程序

  傲游浏览器的下载功能附加在傲游主程序中,功能强大,下载迅速,且支持多线程并从开始下载到结束均十分稳定.最新的2.1.5版中,还特别对其进行了优化,今天,笔者也特别借傲游2.1.5版发布之际,为大家详细介绍一下傲游自带下载程序的功能和特色.帮助大家更好的使用这款功能丝毫不亚于主流下载软件的附加程序. 下载傲游浏览器:http://www.duote.com/soft/7750.html 1.进入傲游下载程序页面 安装并进入傲游2.1.5版主界面之后,点击"工具"菜单,即可轻松找到&q

用VB编写异步多线程下载程序

程序|多线程|下载|异步 为了高效率地下载某站点的网页,我们可利用VB的Internet Transfer 控件编写自己的下载程序, Internet Transfer 控件支持超文本传输协议 (HTTP) 和文件传输协议 (FTP),使用 Internet Transfer 控件可以通过 OpenURL 或 Execute 方法连接到任何使用这两个协议的站点并检索文件.本程序使用多个Internet Transfer 控件,使其同时下载某站点.并可判断文件是否已下载过或下载过的文件是否比服务器

改善Dojo应用程序的初始下载时间

仅获取所需的数据 Asynchronous JavaScript and XML (Ajax) 应用程序能够提高某些 Web 应用程序的性能.加载应用程序之后,获取较小的数据和内容片段可以帮助避免重新呈现整个页面的开销.不过,这样做得的代价是,应用程序的初始下载时间通常会比较长. 我现在已有多年的 Dojo 应用程序使用经验.IBM WebSphere Application Server Feature Pack for Web 2.0 和 Project Zero 现在都包括 Dojo To

js-网站上的demo程序,如何才能下载下来?

问题描述 网站上的demo程序,如何才能下载下来? http://www.html5star.com/manual/jquery-easyui-1.3.0/index-demo.html 例如这个 我的意思是我怎么能把上面连接里面的Demo下载下来 解决方案 没有要的答案,所以关贴了 解决方案二: easyui官网下载的压缩包就有demo了..不都是easyui里面的示例 解决方案三: 你这个问题太可爱了~~ 去官网下呗http://www.jeasyui.com/download/index.

unity assetbundle加载资源的版本号怎么获取?

问题描述 unity assetbundle加载资源的版本号怎么获取? unity assetbundle加载资源的版本号怎么获取? 我把资源用assetbundle打包之后放在服务器,然后用WWW.LoadFromCacheOrDownload (path, 1);来加载资源:但是这个函数的第二个参数是版本号,我不知道是什么,我的资源打包的时候没有看到版本号的设置啊,请问资源的版本号怎么设置? 解决方案 资源版本号是自己设定的,你可以自己写版本号的生成方法,或者使用MD5值作为版本号,下面是M

Android应用程序更新并下载实例

整理文档,搜刮出一个Android应用程序更新并下载实例的代码,稍微整理精简一下做下分享. 创建一个新类,名为UpdateManager,代码如下: import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader;

Win8系统下载程序失败,提示签名无效该怎么办

  1.打开IE浏览器,点击右上角的工具(齿轮状)--Internet选项; 2.在打开的Internet选项窗口中,切换至"高级"项,取消勾选设置下面的"检查所下载程序的签名",点击确定保存设置.