如何将 wget 命令后获得的所有 html 文件转换为文本文件?

如何将 wget 命令后获得的所有 html 文件转换为文本文件?

如何将 wget 命令后获得的所有 html 文件转换为纯文本文件?

我正在考虑使用山猫将 html 文件转换为“.txt”文件,去掉标签。

我有这个代码片段来保存整个网站,但是如何更改它,以便它只在我的本地文件夹“test”中保留从网站“foobar”上的 html 文件转换而来的文本文件?

wget -P /test/ --recursive http://foobar.html

我不知道该怎么做通过管道将其传输到山猫以及如何指定对某个特定目录下的所有文件应用命令

答案1

wget可能不是合适的工具。 Lynx 可以下载文件并将它们同时转换为纯文本,但可以通过将其输出重定向到文件来实现。因为它没有-output选项,所以在脚本中使用它有点尴尬,因为您必须分配输出名称。

但是假设您有一个充满.html文件的目录,那么您可以使用find遍历该目录并转换文件,例如,

#!/bin/sh
find . -type f -name '*.htm*' | while IFS= read path
do
    lynx -dump "$path" >"${path%%.htm*}.txt"
done

将“.txt”文件放在同一棵树中,或者

#!/bin/sh
find . -type f -name '*.htm*' | while IFS= read path
do
    target=${path/foobar/test}
    lynx -dump "$path" >"${target%%.htm*}.txt"
done

在文件夹“test”中(将“foobar”映射到“test”)。 “/”替换是 bash 特定的,不在 POSIX 中(但如果您选择使用 POSIX,则sed效果很好)。

进一步阅读:

答案2

您可能可以按计划将它们下载为 HTML 文件,然后使用命令行实用程序html2text

https://stackoverflow.com/questions/30015809/html2text-convert-special-characters

相关内容