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