4

クライアントで生成されたクレイジーな JavaScript メニューを使用するサイトをミラーリングしようとしています。どちらも、JS コードが実行されるまでリンクが存在しないため、サイト全体のダウンロードに失敗しますwgethttrack私に何ができる?

メインのインデックス ページをブラウザに読み込んでみました。これで JS コードが実行され、メニューが構築され、結果の DOM を HTML ファイルにダンプして、このファイルからミラーリングできます。リンクは既にソースにあるため、より多くのファイルがダウンロードされます。しかし、明らかに、ミラーリングは、解釈されていない JS メニューを含む、新しくダウンロードされた他のページですぐに壊れます。

ダウンロードしたすべてのページのメニュー部分をメニューの静的バージョンに置き換えることを考えましたが、ダウンロードしたファイルを外部コマンドで実行できるフラグが見つかりませwgetん。httrack単純なフィルタリング プロキシを作成することもできますが、それは極端に聞こえ始めます。他のアイデア?

4

2 に答える 2

1

私の場合は役に立ちませんが、誰かにとっては役立つかもしれません。これは、単純なフィルタリング プロキシが 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;
于 2013-06-27T14:38:37.877 に答える