通过脚本从动态变化的网址下载

通过脚本从动态变化的网址下载

我想编写一个脚本来以 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&nbsp;<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>&nbsp;<small>(Video 336.5 MB)</small>
</p>

现在这是

  1. 下载主页
  2. 记住cookies
  3. 解析页面 - 寻找下载,lec01_*.wmv
  4. 使用找到的 URL 和记住的 cookie 下载 wmv 文件

相关内容