2013-06-27 1 views
4

클라이언트에서 생성 된 미친 JavaScript 메뉴를 사용하는 사이트를 미러링하려고합니다. wgethttrack 모두 JS 코드가 실행될 때까지 링크가 존재하지 않기 때문에 전체 사이트를 다운로드하지 못합니다. 내가 무엇을 할 수 있을지?JavaScript 메뉴로 사이트를 미러링하는 방법은 무엇입니까?

브라우저에 기본 색인 페이지를로드하려고했습니다. JS 코드를 실행하면 메뉴가 생성되고이 파일의 미러 & HTML 파일에 결과 DOM을 덤프 할 수 있습니다. 링크가 이미 소스에 있으므로 더 많은 파일을 다운로드합니다. 그러나 분명히 미러링은 곧 해석되지 않은 JS 메뉴가 포함 된 새로 다운로드 한 다른 페이지에서 중단됩니다.

나는 메뉴의 정적 버전의 모든 다운로드 페이지의 메뉴 부품을 교체 생각하지만, 나는 나 외부 명령을 통해 다운로드 한 파일을 실행할 수 있도록하는 어떤 wget 또는 httrack 플래그를 찾을 수 없습니다. 간단한 필터링 프록시를 작성할 수는 있지만 극단적 인 소리가 들리기 시작합니다. 다른 아이디어?

답변

2

동적 요소에 의해 내용이 흐릿하게 보이는 사이트에서도 HtmlUnit을 사용하여 큰 성공을 거두었습니다.

+1

좋은 소리, 고맙습니다. HtmlUnit 기반의 미러링 도구가 있습니까? (그렇지 않으면 링크 변환 à la'wget'을 사용하여 내 자신을 작성하는 것이 필터링 프록시만큼이나 효과적 일 것입니다.) – zoul

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; 
관련 문제