如何将 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.6.2 参数扩展(POSIX)
答案2
您可能可以按计划将它们下载为 HTML 文件,然后使用命令行实用程序html2text
。
https://stackoverflow.com/questions/30015809/html2text-convert-special-characters