我想编写一个脚本来以 wmv 格式下载此页面上的所有 Walter Lewin 讲座:http://videolectures.net/mit801f99_physicals_classical_mechanics/
然而,例如第一讲的 wmv 文件的链接:http://videolectures.net/mit801f99_lewin_lec01/当人们重新加载页面时发生变化。
那么是否可以编写一个脚本,以 wmv 格式自动逐个下载讲座。怎样才能做到这一点呢?
我试过
wget -A wmv -r http://videolectures.net/mit801f99_physics_classical_mechanics/
和
httrack "http://videolectures.net/mit801f99_physics_classical_mechanics/" -O ~/VideoLecture "-*" "+*.wmv"
两者都不起作用。
注意:这个问题源于以下关于物理 sx 的问题:https://physical.stackexchange.com/questions/38033/walter-lewin-lectures-in-hd
答案1
for i in `seq -w 1 35`; do wget -p -U Mozilla -A wmv -r "http://videolectures.net/mit801f99_lewin_lec$i/"; done
似乎有效。但我认为必须有一种更优雅的方式来做到这一点。
答案2
您必须解析下载页面。在浏览器中禁用脚本并打开网页源代码。
当我这样做时,我看到以下“有趣”的部分:
<p>
<img alt="Download Video" src="http://media.videolectures.net/rel.1350055487/icons/download.png" />
Download <a href='http://videolectures.net/site/secure_dl/eea58431dcc3454ad91ef7c89a49958b/50845240/afuvgg7fochnsdyl2ee4hlcsvwamqha2/tag=23313/mit801f99_lewin_lec01_01.wmv' rel='nofollow'>mit801f99_lewin_lec01_01.wmv</a> <small>(Video 336.5 MB)</small>
</p>
现在这是
- 下载主页
- 记住cookies
- 解析页面 - 寻找下载,lec01_*.wmv
- 使用找到的 URL 和记住的 cookie 下载 wmv 文件