序
前面兩篇演示了模擬騰訊第三方認(rèn)證的過(guò)程趾诗,至此已經(jīng)能夠自由登錄學(xué)院網(wǎng)站粉捻。下面就要開(kāi)始探索如何寫一個(gè)簡(jiǎn)單的爬蟲(chóng)妈踊,分析教程頁(yè)面的視頻信息巷波,進(jìn)而可以將自己感興趣的教程進(jìn)行本地或網(wǎng)絡(luò)存儲(chǔ)瓷炮。
頁(yè)面分析
頁(yè)面分析主要使用F12開(kāi)發(fā)者工具分析頁(yè)面元素信息葱色。
主頁(yè)導(dǎo)航信息
這里從主頁(yè)入手,打開(kāi)學(xué)院的主頁(yè)可以看到左邊的導(dǎo)航信息娘香,如下圖:
通過(guò)F12查看元素內(nèi)容苍狰,大致如下:
<div class = "lesson-classfy-nav">
<ul>
<li>1</li>
<li>2</li>
...
<li>11</li>
</ul>
</div>
具體分類分級(jí)就不是重點(diǎn)办龄,主要是每一個(gè)li節(jié)點(diǎn)下的課程鏈接:
比如python課程分類:
<a cgid="23" >Python</a>
由此可以繼續(xù)查看python分類所有課程。
分類課程
打開(kāi)python分類課程頁(yè)面淋昭,http://www.jikexueyuan.com/course/python
, 頁(yè)面如下:
可以看到左側(cè)的導(dǎo)航?jīng)]有變化俐填,主要是右側(cè)的課程項(xiàng),分析HTML元素如下:
在lession-box的div塊內(nèi)可以看到課程《python概述》的地址為:
http://www.jikexueyuan.com/course/2282.html
單個(gè)課程信息
我們繼續(xù)打開(kāi)《python概述》課程地址翔忽,
直到此才瀏覽到真正課程播放視頻的頁(yè)面英融,之前說(shuō)過(guò),學(xué)院播放使用的video-js實(shí)現(xiàn)的視頻控制歇式,視頻地址可以從source項(xiàng)查詢到驶悟,我們看播放器HTML內(nèi)容:
這里本來(lái)以為支持HTML5就可以在video塊中看到視頻地址,然而使用開(kāi)發(fā)者工據(jù)查看源碼并沒(méi)有source節(jié)點(diǎn)材失。不過(guò)之前的工作并沒(méi)有白費(fèi)痕鳍,因?yàn)樯鲜鍪褂玫臑g覽器開(kāi)發(fā)者工具查看的,而通過(guò)查看頁(yè)面源碼HTML文件龙巨,是可以看到source地址的额获。
然后,后面還可以繼續(xù)查看第二節(jié)課程的頁(yè)面恭应。
總結(jié)
至此,整個(gè)視頻頁(yè)面分析流程就結(jié)束了耘眨,從主頁(yè)導(dǎo)航到課程分類昼榛,然后到單個(gè)課程的單個(gè)章節(jié)。
只關(guān)心單個(gè)章節(jié)的視頻下載剔难,不是最終目的胆屿,最好能夠連續(xù)訪問(wèn)并統(tǒng)計(jì)各個(gè)章節(jié)的視頻信息,最終將采集視頻地址與課程信息做成任務(wù)化的下載是真正的目的偶宫。
因時(shí)間有限非迹,本篇還是先解釋頁(yè)面原理,下篇開(kāi)始編碼模擬嗅探頁(yè)面信息纯趋。