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

简介:

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

(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,那么就可以到每个课程的下载页面去获取。

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


目录
相关文章
|
12月前
|
JSON 搜索推荐 C++
vscode如何更改背景颜色主题,黑色或白色?
【11月更文挑战第16天】在 VS Code 中更改背景颜色主题,可通过三种方式实现:1) 使用快捷键 Ctrl+K 和 Ctrl+T(Mac 上为 Command+K 和 Command+T)选择主题;2) 通过菜单中的“管理”-&gt;“颜色主题”选项选择;3) 修改 settings.json 文件中的 &quot;workbench.colorTheme&quot; 属性。此外,用户还可从扩展市场安装更多主题以满足个性化需求。
24310 6
|
SQL 数据采集 关系型数据库
如何解决MySQL报错 You have an error in your SQL syntax; check the manual that corresponds to your MySQL?
如何解决MySQL报错 You have an error in your SQL syntax; check the manual that corresponds to your MySQL?
14188 2
|
机器学习/深度学习 程序员 TensorFlow
GitHub排名第一!免费最强“抢票神器”在手,程序员抢票再不用跪求加速包
过年回家的车票抢到了吗?春运一直以来都以难抢票著称,很多人开始通过各种软件和途径,希望能够完成购票大计。按照程序员一向“懒”的做事风格,必然是不愿意自己亲手去做的,直接写一段程序岂不是省时省力?今天分享GitHub标星两万的"抢票神器”。
11051 0
GitHub排名第一!免费最强“抢票神器”在手,程序员抢票再不用跪求加速包
|
SQL SpringCloudAlibaba 关系型数据库
SpringCloud Alibaba Nacos自定义登录用户名和密码
SpringCloud Alibaba Nacos自定义登录用户名和密码
1119 0
SpringCloud Alibaba Nacos自定义登录用户名和密码
|
SQL 关系型数据库 MySQL
MySQL学习笔记-事务的隔离性
MySQL学习笔记-事务的隔离性
133 0
|
机器学习/深度学习 分布式计算 算法
一文初识大数据Flink框架
一文初识大数据Flink框架
一文初识大数据Flink框架
|
人工智能 算法 视频直播
Soundful:AI音乐生成器
Soundful:AI音乐生成器
3020 0
|
Linux
linux驱动中如何向模块传递参数方法
大家好,今天主要和大家分享一下,如何向模块传递参数? Linux kernel 提供了一个简单的框架。利用module_param和module_param_arra来实现。
274 0
linux驱动中如何向模块传递参数方法
|
Android开发
批处理文件 Android Studio 连接夜神模拟器
批处理文件 Android Studio 连接夜神模拟器
|
C++
VS中显示行号
VS中显示行号
162 0