from small one page howto to huge articles all in one place
poll results
Last additions:
May 25th. 2007:
April, 26th. 2006:
| You are here: manpages
HTTP::Proxy::BodyFilter::htmlparser
Section: User Contributed Perl Documentation (3) Updated: 2010-03-30 Index
Return to Main Contents
NAME
HTTP::Proxy::BodyFilter::htmlparser - Filter using HTML::Parser
SYNOPSIS
use HTTP::Proxy::BodyFilter::htmlparser;
# $parser is a HTML::Parser object
$proxy->push_filter(
mime => 'text/html',
response => HTTP::Proxy::BodyFilter::htmlparser->new( $parser );
);
DESCRIPTION
The HTTP::Proxy::BodyFilter::htmlparser lets you create a
filter based on the HTML::Parser object of your choice.
This filter takes a HTML::Parser object as an argument to its constructor.
The filter is either read-only or read-write. A read-only filter will
not allow you to change the data on the fly. If you request a read-write
filter, you'll have to rewrite the response-body completely.
With a read-write filter, you must recreate the whole body data. This
is mainly due to the fact that the HTML::Parser has its own buffering
system, and that there is no easy way to correlate the data that triggered
the HTML::Parser event and its original position in the chunk sent by the
origin server. See below for details.
Note that a simple filter that modify the HTML text (not the tags) can
be created more easily with HTTP::Proxy::BodyFilter::htmltext.
Creating a HTML::Parser that rewrites pages
A read-write filter is declared by passing "rw => 1" to the constructor:
HTTP::Proxy::BodyFilter::htmlparser->new( $parser, rw => 1 );
To be able to modify the body of a message, a filter created with
HTTP::Proxy::BodyFilter::htmlparser must rewrite it completely. The
HTML::Parser object can update a special attribute named "output".
To do so, the HTML::Parser handler will have to request the "self"
attribute (that is to say, require access to the parser itself) and
update its "output" key.
The following attributes are added to the HTML::Parser object by this filter:
- output
-
A string that will hold the data sent back by the proxy.
This string will be used as a replacement for the body data only
if the filter is read-write, that is to say, if it was initialised with
"rw => 1".
Data should always be appended to "$parser->{output}".
- message
-
A reference to the HTTP::Message that triggered the filter.
- protocol
-
A reference to the HTTP::Protocol object.
METHODS
This filter defines three methods, called automatically:
- filter()
-
The "filter()" method handles all the interactions with the HTML::Parser
object.
- init()
-
Initialise the filter with the HTML::Parser object passed to the constructor.
- will_modify()
-
This method returns a boolean value that indicates to the system
if it will modify the data passing through. The value is actually
the value of the "rw" parameter passed to the constructor.
SEE ALSO
HTTP::Proxy, HTTP::Proxy::Bodyfilter,
HTTP::Proxy::BodyFilter::htmltext.
AUTHOR
Philippe ``BooK'' Bruhat, <book@cpan.org>.
COPYRIGHT
Copyright 2003-2006, Philippe Bruhat.
LICENSE
This module is free software; you can redistribute it or modify it under
the same terms as Perl itself.
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- Creating a HTML::Parser that rewrites pages
-
- METHODS
-
- SEE ALSO
-
- AUTHOR
-
- COPYRIGHT
-
- LICENSE
-
Please read "Why adblockers are badwww.cars2fast4u.de
|
Other free services .
.
|