1#!/usr/bin/perl -w
2use HTTP::Proxy qw( :log );
3use HTTP::Proxy::BodyFilter::htmlparser;
4use HTML::Parser;
5use strict;
6
7my $parser = HTML::Parser->new( api_version => 3 );
8$parser->handler(
9    start_document => sub { my $self = shift; $self->{print} = 1 },
10    "self"
11);
12$parser->handler(
13    start => sub {
14        my ( $self, $tag, $text ) = @_;
15        $self->{print} = 1 if $tag =~ /^h\d/;
16        $self->{output} .= $text if $self->{print};
17        $self->{print} = 0 if $tag eq 'body';
18    },
19    "self,tagname,text"
20);
21$parser->handler(
22    end => sub {
23        my ( $self, $tag, $text ) = @_;
24        $self->{print} = 1 if $tag eq 'body';
25        $self->{output} .= $text if $self->{print};
26        $self->{print} = 0 if $tag =~ /^h\d/;
27    },
28    "self,tagname,text"
29);
30$parser->handler(
31    default => sub {
32        my ( $self, $text ) = @_;
33        $self->{output} .= $text if $self->{print};
34    },
35    "self,text"
36);
37
38my $filter = HTTP::Proxy::BodyFilter::htmlparser->new( $parser, rw => 1 );
39
40my $proxy = HTTP::Proxy->new(@ARGV);
41$proxy->push_filter( mime => 'text/html', response => $filter );
42$proxy->start;
43
44