如何使用 wget 指定文件名在本地镜像 html 文件及其随附图像?

发布于 2025-01-07 17:30:20 字数 644 浏览 0 评论 0原文

我需要获取一个 html 格式的 url 及其随附的图像。 html 将使用自定义文件名保存(我在调用脚本中给它一个时间戳),并且图像也需要具有这些时间戳。

结果文件夹的结构应如下所示:

2012-02-22 06:00:00 UTC.html
2012-02-22 07:00:00 UTC.html
2012-02-22 08:00:00 UTC.html
img1_2012-02-22 06:00:00 UTC.gif
img2_2012-02-22 06:00:00 UTC.gif
img1_2012-02-22 07:00:00 UTC.gif
img2_2012-02-22 07:00:00 UTC.gif
img1_2012-02-22 08:00:00 UTC.gif
img2_2012-02-22 08:00:00 UTC.gif

本质上,这是一个镜像,需要将图像路径重写为 html 中的本地相对路径。我尝试过 wget 的 --directory-prefix--output-document ,但显然没有真正成功,因为它将图像嵌入 html 输出文件中。

这对于 Stock wget 是可行的还是最好编写我自己的脚本来将每个文件拉下来,然后解析 html 文件并适当地替换字符串?

I need to grab a url as html along with it's accompanying images. The html is to be saved with a custom filename (I'm giving it a timestamp in the calling script) and the images need to have these timestamps as well.

The resultant folder should should be structured like:

2012-02-22 06:00:00 UTC.html
2012-02-22 07:00:00 UTC.html
2012-02-22 08:00:00 UTC.html
img1_2012-02-22 06:00:00 UTC.gif
img2_2012-02-22 06:00:00 UTC.gif
img1_2012-02-22 07:00:00 UTC.gif
img2_2012-02-22 07:00:00 UTC.gif
img1_2012-02-22 08:00:00 UTC.gif
img2_2012-02-22 08:00:00 UTC.gif

Essentially this is a mirror that needs to rewrite the images paths for the local relative path in the html. I've played around with wget's --directory-prefix and --output-document with no real success obviously since it embeds the images in the html output file.

Is this doable with stock wget or is it better to write my own script to just pull each file down and then parse up the html file replacing the strings appropriately?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

饮湿 2025-01-14 17:30:20

我做了一些类似于您想要完成的事情这里。我非常确定您可以重新设计我所得到的内容来创建您的程序。

查看 4chan_image_crawler.rb

该程序执行这些操作。

  • 给定一个 URL(线程 URL 4chan.org/b/),创建一个包含该 URL 的整个 html 文件的字符串值。
  • 通过一些正则表达式操作,将所有相关图像 URL 放入名为 occurrences 的数组中。
  • html 字符串包含图像链接的重复项。因此,只需清理重复项并将最终图像 URL 链接保存到名为 result 的数组中即可。
  • 对于结果数组中的所有条目,将图像保存到当前目录中的 /images 文件夹中。

如果您无法理解我的代码,请告诉我。

成功做到这一点的关键是了解如何操作正则表达式并使用 Ruby 中 String 类的 scan

I did something similar to what you are trying to accomplish here. I'm pretty sure you can reengineer what I got there to create your program.

Check out 4chan_image_crawler.rb

The program does these things.

  • Given a URL (a thread URL of 4chan.org/b/), create a string value containing entire html file of the URL.
  • With some regex manipulation, put all the relevant images URL into an array called occurances.
  • The html string contains duplicates of image links. So just clean up the duplicates and save the final image URL links into array called result.
  • For all the entries in result array, save the images into /images folder within the current directory.

Let me know if you have trouble understanding my code.

The key to doing this successfully is knowing how to manipulate regex and using scan from the String class in Ruby.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文