wget可以下载reveal.js图像资源吗?

wget可以下载reveal.js图像资源吗?

在使用wget下面的命令时,

$ wget \
     --recursive \
     --no-clobber \
     --page-requisites \
     --html-extension \
     --convert-links \
     --restrict-file-names=windows \
     --domains grantmlong.com \
     --no-parent \
         grantmlong.com/teaching/index.html

我一直在尝试下载教授的所有内容课程页面。由于某种原因,虽然网站其余部分的大部分图像内容正在正确下载,但Reveal.js讲座幻灯片未下载。

例如,如果在我的本地计算机上,我导航到grantmlong.com/teaching/lectures/并打开lecture1.html,则第三张幻灯片显示的内容是在此输入图像描述

而不是这个:在此输入图像描述

在网站上,我发现该图像位于https://grantmlong.com/teaching/lectures/img/hbr.png。如果我导航到img下载的本地文件夹wget,我会看到

cd grantmlong.com/teaching/lectures/img
ls -1
l10_f0.png
l10_f1.png
l10_f2.png
l10_f3.png
l10_f4.png
l10_f5b.png
l10_f5.png
l10_f6.png
l10_f7.png
l10_p1.png
l10_p2.png
l11_p1.png
l11_p2.png
l11_p3.png
l11_p4.png
l11_p5.png
l11_p6.png
l12_p1.png
l12_p2.png
l5_e1.png
l5_e2.png
l5_e3.png
l5_e4.png
l5_glm.png
l5_logreg.png
l5_p10.png
l5_p11.png
l5_p1a.png
l5_p1b.png
l5_p2.png
l5_p3.png
l5_p4.png
l5_p5.png
l5_p6.png
l5_p7.png
l5_p8.png
l5_p9.png
l5_reg_output_1.png
l5_reg_output_2.png
l5_reg_output_3.png
l5_reg_output_4.png
l5_reg_output.png
l6_accuracy.png
l6_confusion.png
l6_p1.png
l6_precision.png
l6_recall.png
l9_p1.png
l9_p2.png
l9_p3.png
l9_p4.png
l9_t1.png
l9_t2.png
l9_t3.png
l9_t4.png
l9_t5.png

hbr.png无处可寻,这表明这些 Reveal.js 幻灯片中的图像不被视为“页面必需品”,并且不会被wget.

我该如何确保这些图像被下载?另请注意,reveal.js 幻灯片上的一些图像来自 3rd 方网站,例如吉菲。如何确保下载此外部内容,同时--domains grantmlong.com对所有非 Reveal.js 幻灯片的页面保持该选项为 true?

答案1

不,不能。

文件 hbr.png 由自定义属性引用数据源在 img 标签上。

正如所解释的这里,wget 没有办法遵循自定义属性。

答案2

经过更多搜索后,我找到了一个(hacky)解决方案来解决下载 Reveal.js 幻灯片存档的问题。在 codimd github 上,用户“zeigerpuppy”发布了以下回应:

我找到了一种方法来保存使用 codimd 构建的幻灯片演示文稿的存档。我在让 wget 从演示文稿中提取图像时遇到了一些麻烦(我认为是因为图像的链接是降价的)。

因此,这是一个三步过程,但速度快且效果良好。假设您要在以下位置放映幻灯片https://codimd.server.net/p/S1PIjfhM8#/

  1. 用于wget获取文件和必需文件(.css 和 .js)

    • 你的演示文稿最终将是p/S1PIjfhM8.html

`

wget   --recursive   --no-clobber   --page-requisites   \
--html-extension   --convert-links   \
--domains codimd.server.net \
https://codimd.server.net/p/S1PIjfhM8#/
  1. 使用火狐插件:图像选择

    • 使用保存模式:Image_Picka/uploads/${name}${ext}
    • 它获取页面上的所有图像(包括.svg)
    • 将图像移动到uploadsWeb 存档根目录中名为的文件夹中
  2. 我们需要使用sed将 html 文件中的链接更改为相对链接,以便它们指向图像

`

cd p
sed -i .bak 's|/uploads/upload_|../uploads/upload_|g' S1PIjfhM8.html

然后您将获得可以离线运行的幻灯片的完整副本。它也适用于存档目的。

如果像这样的东西也内置到保存选项下的 codimd 程序中,那就太好了,也许save slides

我采取了类似的方法,尽管我没有使用 执行最后一步sed。相反,我使用 Image Picka 下载所有错过的图像wget,并将它们放入grantmlong.com/teaching/lectures/img/本地wget存档的目录中。这使得大部分图像内容出现在幻灯片中。

虽然无法加载来自第 3 方网站的 gif,但这些大多是美观的(没有 .gif 格式的重要方程或图表。)因此,我很高兴我可以离线查看最重要的内容。

相关内容