![下载网站并使其可搜索](https://linux22.com/image/1118096/%E4%B8%8B%E8%BD%BD%E7%BD%91%E7%AB%99%E5%B9%B6%E4%BD%BF%E5%85%B6%E5%8F%AF%E6%90%9C%E7%B4%A2.png)
有没有一种软件(除了浏览器之外)可以获取用 下载的多个页面wget
,显示它们,并且——最重要的功能——提供以 HTML 格式的快速全文搜索(而不是像 grep 那样带有标签的纯文本)?应该很容易安装/设置。
答案1
为了镜像网站我喜欢使用httrack
而不是wget
使用递归检索选项。
描述:HT轨道将网站保存到您的计算机(离线浏览器)。
HTTrack 是一个离线浏览器实用程序,允许您从互联网下载全球网站到本地目录,递归构建所有目录,将 html、图像和其他文件从服务器获取到您的计算机。
HT轨道安排原始网站的相对链接结构只需在浏览器中打开“镜像”网站的页面,然后你可以从一个链接到另一个链接浏览网站,就像您在线查看一样。HTTrack 还可以更新现有的镜像站点,并恢复中断的下载。HTTrack 完全可配置,并具有集成的帮助系统。
安装在终端中:
sudo apt-get install httrack
答案2
在您使用wget
或其他任何工具正确镜像您的网站后,只需进入下载的网页根目录并运行以下命令:
find . -iname "*.htm*" -exec grep -l "WHAT_YOU_ARE_SEARCHING_GOES_HERE" {} + | xargs -d "\n" firefox
然后 Firefox 将打开所有包含您的搜索的页面。
(或者如果您的搜索词仅出现在网页的 HTML 标签中,则需要更多时间。如果这对您来说是一个问题,那么也可以通过另一个管道来解决,该管道会过滤掉 HTML 标签。)
答案3
您可以使用 grep,但将输出通过管道传输到网页中,这样就可以理解为最多标签将被删除,例如:
grep -d recurse 'SEARCH-TERM' /PATH/TO/FOLDER/WITH/WEBPAGE-FILES > OUTPUT.html
这会删除大部分标签和内容,尽管它会被裁剪为单独的行,因此您可以使用该-C
选项来显示搜索结果的一些上下文。:
grep -d recurse -C 5 'SEARCH-TERM' /PATH/TO/FOLDER/WITH/WEBPAGE-FILES > OUTPUT.html
其中 5 是每个方向的线数,以便为搜索结果提供更多上下文。
有关更多选项,请参阅man grep
确实,网络浏览器是搜索网页的最佳工具——我想不出其他更好的工具了
哦,为了确保您只搜索网页(扩展名为 .htm 或 .html):
find . -name "*.htm*" -exec grep -d recurse -C 5 'SEARCH-TERM' /PATH/TO/FOLDER/WITH/WEBPAGE-FILES > OUTPUT.html
此外,为了改善任何带有 的网页/网站的下载wget
,请查看这里。