in reply to Search function for guestbook history?
Parsing HTML is tricky and feature creep!
The following snippet uses an HTML parser to do the heavy lifting.
output:#!/bin/perl5 use strict; use warnings; use HTML::TokeParser::Simple; my $html; { local $/; $html = <DATA>; } my $p = HTML::TokeParser::Simple->new(\$html); my ($start, @data); while (my $t = $p->get_token) { $start++, next if $t->is_comment and $t->as_is eq '<!--begin-->'; last if $t->is_comment and $t->as_is eq '<!--end -->'; next unless $start; if ($t->is_start_tag('b')){ my $comment = $p->get_trimmed_text('/b'); my $sig = $p->get_trimmed_text('hr'); $sig =~ s/\s+-.*//; # crudely strip the timestamp push @data, join '|', $sig, $comment; } } print "$_\n" for @data; __DATA__ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML><HEAD><META http-equiv="Content-Type" CONTENT="text/html; charse +t=iso-8859-1"> <TITLE>Last Post </TITLE></HEAD> <BODY> <!--begin--> <HR> <b>Comment 1</b><br> Doug <<a href="mailto:hun@tele.com">hun@tele.com</a>><br> USA - Thu 01/05/2006 - 22:05:51 <hr> <b>Comment 2</b><br> J H<br> Clearwater, FL USA - Wed 01/04/2006 - 02:05:12 <hr> <!--end --> </BODY></HTML>
---------- Capture Output ---------- > "C:\Perl\bin\perl.exe" _new.pl Doug <hun@tele.com> USA|Comment 1 J H Clearwater, FL USA|Comment 2 > Terminated with exit code 0.
Hope this helps.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Search function for guestbook history?
by JCHallgren (Sexton) on Jan 10, 2006 at 15:06 UTC | |
by JCHallgren (Sexton) on Jan 10, 2006 at 15:18 UTC | |
by BrowserUk (Patriarch) on Jan 10, 2006 at 15:25 UTC |