如何使用JavaScript菜单镜像网站

How to mirror a site with a JavaScript menu?

本文关键字:镜像 网站 菜单 JavaScript 何使用      更新时间:2023-09-26

我正在尝试镜像一个使用客户端上生成的疯狂JavaScript菜单的网站。wgethttrack都无法下载整个网站,因为在JS代码运行之前,链接根本不存在。我能做什么?

我已尝试将主索引页加载到浏览器中。它运行JS代码,构建菜单,我可以将生成的DOM转储到HTML文件&从上的此文件镜像。这将下载更多文件,因为链接已在源中。但很明显,镜像很快就会在其他新下载的页面上中断,这些页面包含未解释的JS菜单。

我曾想过用静态版本的菜单替换每个下载页面的菜单部分,但我找不到任何可以通过外部命令运行下载文件的wgethttrack标志。我可以写一个简单的过滤代理,但这听起来很极端。其他想法?

我使用HtmlUnit取得了巨大成功,即使在动态元素混淆的网站上也是如此。

在我的情况下,这不会有帮助,但可能对某人有用;这就是一个简单的过滤代理在Perl:中的样子

#!/usr/bin/env perl
use HTTP::Proxy;
use HTTP::Proxy::BodyFilter::simple;
my $proxy = HTTP::Proxy->new(port => 3128);
$proxy->push_filter(
    mime => 'text/html',
    response => HTTP::Proxy::BodyFilter::simple->new(
        sub { ${ $_[1] } =~ s/foo/bar/g }
    )
);
$proxy->start;