有一个网站我想下载,因为它最近出了点问题。我尝试了使用 HTTrack 的常规方法,这种方法对可点击链接有效,但网站上的搜索框仍然指向原始网站,搜索任何内容都会将我带回到原始网站。有没有办法让搜索框在下载时正常工作?
答案1
你不能。
搜索功能使用服务器上的软件对页面进行索引,并创建网站内容的可搜索目录。当您单击“搜索”时,您的网站会要求该软件提供包含该术语的页面列表。
说白了,大多数 HTML 页面都是无意义的文本。它们有用于动态元素的 javascript在该页面内但是这些脚本不能简单地搜索网站内的其他页面,因为除了自己页面上的链接之外,它们对整个网站的内容一无所知。
对于浏览器客户端上的脚本来说,要索引和搜索网站,它必须基本上浏览其自身页面上的每个链接,以某种方式加载每个页面的文本,在有重要内容时运行脚本,然后跟踪所有这些链接等等。每个尝试进行搜索的客户端最终都会请求整个网站,这会很慢、效率低下且浪费,因为他们可能只需要一千个网页中的一个。
另一方面,服务器拥有所有页面内容,无论是作为 html 文件还是存储在数据库中,都可以在本地对其进行索引,而不会浪费大量带宽。客户端发送“您是否有包含blargh
”的页面的请求,服务器将返回列表而不是整个网站。
你可以有一个基于客户端 javascript 的搜索工具,但这又会浪费带宽,可能不值得付出努力。它需要服务器创建某种客户端可以下载的整个网站的搜索索引,而可能如果数据库尚未提供搜索工具,则必须为其自己的搜索工具执行此操作。缺点是该索引可能再次非常大,并且可能会经常更改。浏览器缓存可能意味着页面更新,并且有人在拥有旧版本的索引时进行搜索,因此当他们搜索时,即使浏览带有该确切搜索结果的页面,他们也不会得到任何结果。