序
前面两篇演示了模拟腾讯第三方认证的过程,至此已经能够自由登录学院网站。下面就要开始探索如何写一个简单的爬虫,分析教程页面的视频信息,进而可以将自己感兴趣的教程进行本地或网络存储。
页面分析
页面分析主要使用F12开发者工具分析页面元素信息。
主页导航信息
这里从主页入手,打开学院的主页可以看到左边的导航信息,如下图:
通过F12查看元素内容,大致如下:
<div class = "lesson-classfy-nav">
<ul>
<li>1</li>
<li>2</li>
...
<li>11</li>
</ul>
</div>
具体分类分级就不是重点,主要是每一个li节点下的课程链接:
比如python课程分类:
<a cgid="23" href="http://www.jikexueyuan.com/course/python/">Python</a>
由此可以继续查看python分类所有课程。
分类课程
打开python分类课程页面,http://www.jikexueyuan.com/course/python
, 页面如下:
可以看到左侧的导航没有变化,主要是右侧的课程项,分析HTML元素如下:
在lession-box的div块内可以看到课程《python概述》的地址为:
http://www.jikexueyuan.com/course/2282.html
单个课程信息
我们继续打开《python概述》课程地址,
直到此才浏览到真正课程播放视频的页面,之前说过,学院播放使用的video-js实现的视频控制,视频地址可以从source项查询到,我们看播放器HTML内容:
这里本来以为支持HTML5就可以在video块中看到视频地址,然而使用开发者工据查看源码并没有source节点。不过之前的工作并没有白费,因为上述使用的浏览器开发者工具查看的,而通过查看页面源码HTML文件,是可以看到source地址的。
然后,后面还可以继续查看第二节课程的页面。
总结
至此,整个视频页面分析流程就结束了,从主页导航到课程分类,然后到单个课程的单个章节。
只关心单个章节的视频下载,不是最终目的,最好能够连续访问并统计各个章节的视频信息,最终将采集视频地址与课程信息做成任务化的下载是真正的目的。
因时间有限,本篇还是先解释页面原理,下篇开始编码模拟嗅探页面信息。