Over het algemeen hebben zoekmachines en schrijvers van webrobots moeite met websites met frames. Door een frameset is de content van een website gescheiden over meerdere urls. Het ene frame kan een menu representeren, een ander frame kan het contentframe. Welk frame is het belangrijkst?
Ook wat Google PageRank betreft kunnen framesets nadelige invloed hebben; Door het gebruik van framesets verdeeld de content zich over afzonderdelijke urls terwijl de PageRank zich op de framesetpagina bevindt. Immers, gebruikers linken naar de hoofdurl van een website en niet naar de losse frames. In feite is nu content van linkpopulariteit gescheiden en kan een lagere ranking opleveren t.o.v. niet gescheiden content. Dit is de algemene reden waarom frame's minder goed werken voor zoekmachines.
Voor een zoekmachine is het dus belangrijk te achterhalen welk frame het belangrijkste is en dus het mainframe is. Maar wat is nu het mainframe?
Framebuster.pm is een perl script wat in staat is op basis van de standaard frameset regels het hoofdframe van een frameset te vinden. Het is oorspronkelijk geschreven voor de walker.pm webrobot (zie eerdere post). Deze frameset-parser berekent aan de hand van een standaard schermdefinitie van 1024x768 pixels, het frame welke de grootste oppervlakte van het scherm inneemt. Het script is uitermate geschikt om een webrobot - bij het stuiten op een frameset - zijn weg te laten vervolgen via het hoofdframe.
> download the framebuster perl module
Updated: 2007/01/14
FRAMEBUSTER.PM
Framebuster is a perl module to parse a frameset and to get the url of the largest frame (mainframe).
SYNOPSIS
use framebuster;
my $frame = framebuster::
get_frame( \
$html );
#make this frame an absolute urlif (defined $frame) { my $abs = URI->
new_abs($frame,
$base_uri);
print "$abs\n";
}
SUBROUTINES
get_frame
$url = get_frame( \$html );
This subroutine parses the frameset and returns the url of the largest frame. The argument must be a reference to the html of the website.
If the mainframe is found, it returns the value of the 'src' attribute of the mainframe, else it returns
undef.
BUGS
Framebuster.pm is still under development. If you find a bug, please feel free to report them by leaving a comment.
COPYRIGHT
Copyright © 2007 www.alles-over.com
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.