在上一个博文里,博主已实现用python登录了 www.med66.com 网站。python
博文:http://my.oschina.net/hevakelcj/admin/edit-blog?blog=357852ide
To www.med66.com网站设计师:我只是想批量下载已花钱购买的资源罢了,没有恶意。
工具
成功登录,就意味着进入了网站的大门。剩下的工做就是进去以后在里面取想到的东西。布局
以下就是登录成功后的网页,咱们须要从这个页面获取课程列表。网站
打开Firefox的调试工具,看一下上面的元素是如何布局的。.net
经过Firefox的调试工具很容易找到课程列表的元素,全部课程列表在 <div class="ul_con_uc_show"> 里。
而每个<div class="uc_row"> 就是一个课程。
每一个课程的"点击这里从头开始学"后面有个连接。如上 href="http://elearning.med66.com/cware/video/videoList/videoList.shtm?cwareID=700914"设计
咱们分析一下这个连接地址,访问固定的页面 http://elearning.med66.com/cware/video/videoList/videoList.shtm
后面带个参数 cwareID=700914。这个"700914"就是课程的ID号。调试
进入该课程的下载页面: 视频
在这个“下载中心”的页面上能够下载讲义、习题、视频等。笔者惊讶地发现:下载中心的地址与课程ID有关:
http://elearning.med66.com/cware/download/downloadIndex.shtm?cwareID=700914
这个网址也是固定页面地址,后面带一个参数cwareID=700914。
笔者大胆地设想,是否是全部的课程下载页网都是以cwareID来区分课程呢?htm
笔者打开 “下载中心” 页面中的 “课程讲义WORD文档下载” 这个连接。观察其地址:
http://elearning.med66.com/cware/download/wordDownload.shtm?wordType=1&cwareID=700914
笔者再打开 “练习中心WORD文档下载”,观察其地址:
http://elearning.med66.com/cware/download/wordDownload.shtm?wordType=2&cwareID=700914
可看出二者只是wordType这个参数不一样而已。触类旁通,笔者以表格的形式展现:
下载内容 |
下载连接 |
讲义 | http://elearning.med66.com/cware/download/wordDownload.shtm?wordType=1&cwareID=700914 |
练习 | http://elearning.med66.com/cware/download/wordDownload.shtm?wordType=2&cwareID=700914 |
手机视频 |
http://elearning.med66.com/cware/download/videoDownload.shtm?cwareDownType=down12&cwareID=700914 |
手机音频 |
http://elearning.med66.com/cware/download/videoDownload.shtm?cwareDownType=down13&cwareID=700914 |
平板视频 |
http://elearning.med66.com/cware/download/videoDownload.shtm?cwareDownType=down14&cwareID=700914 |
平板音频 |
http://elearning.med66.com/cware/download/videoDownload.shtm?cwareDownType=down15&cwareID=700914 |
有了这张表,那么只要知道了课程的cwareID,就推导出下载该课程的资源的地址了。这是一个重大的破突!
虽然可以进入资源的下载页面,可是下载页面并非一下只下载所有,而是一小节一小节地下载。以下为 “手机视频” 下载页面截图:
用Firefox的调试工具打开看看元素的布局:
咱们要捕获表的每一行,抓出小节的名称与资源连接地址。它的下载地址还不止一个,有4个下载地址可供选择。咱们用第三个(应该是最不繁忙的一个吧)。
好了,今天就分析到这里,明天再分析程序流程。尽请期待!