Perl - HTTP: Proxy captura comunicación XHR / JSON

El sitiohttp://openbook.etoro.com/#/main/ tiene un feed en vivo que genera javascript a través de las solicitudes de XHR keep-alive y obtiene respuestas del servidor como una cadena JSON comprimida con gzip.

Quiero capturar el feed en un archivo.

La forma habitual (WWW :: Mech ..) no es (probablemente) viable porque la necesidad de revertir la ingeniería de todos los Javascripts en la página y simular el navegador es una tarea muy difícil, por lo tanto, buscar una solución alternativa.

Mi idea es usar una táctica Man-in-the-middle, por lo que el explorador hará su trabajo y quiero capturar la comunicación a través de un proxy Perl, dedicado solo para esta tarea.

Soy capaz de captar la comunicación inicial, pero no la alimentación en sí. El proxy funciona correctamente, porque en el navegador la fuente funciona, solo mis archivos no funcionan.

use HTTP::Proxy;
use HTTP::Proxy::HeaderFilter::simple;
use HTTP::Proxy::BodyFilter::simple;
use Data::Dumper;
use strict;
use warnings;

my $proxy = HTTP::Proxy->new(
     port => 3128, max_clients => 100, max_keep_alive_requests => 100
);

my $hfilter = HTTP::Proxy::HeaderFilter::simple->new(
    sub {
        my ( $self, $headers, $message ) = @_;
        print STDERR "headers", Dumper($headers);
    }
);

my $bfilter = HTTP::Proxy::BodyFilter::simple->new(
    filter => sub {
        my ( $self, $dataref, $message, $protocol, $buffer ) = @_;
        print STDERR "dataref", Dumper($dataref);
    }
);

$proxy->push_filter( response => $hfilter); #header dumper
$proxy->push_filter( response => $bfilter); #body dumper
$proxy->start;

Firefox se configura utilizando el proxy anterior para todas las comunicaciones.

El feed se está ejecutando en el navegador, por lo que el proxy lo alimenta con datos. (Cuando detengo el proxy, el feed también se detiene). Al azar (no puedo saber cuándo) obtengo el siguiente error:

[Tue Jul 10 17:13:58 2012] (42289) ERROR: Getting request failed: Client closed

¿Alguien me puede mostrar una manera, cómo construir el filtro HTTP: Proxy correcto para Dumpers toda comunicación entre el navegador y el servidor con respecto a keep_alive XHR?

Respuestas a la pregunta(2)

Su respuesta a la pregunta