Jika anda melihat satu halaman web dan ingin mengambil semua alamat URL yang ada di halaman tersebut, maka anda membutuhkan Link URL Grabber. Aku menyusunnya berdasarkan contoh di dokumentasi perl modul HTML::LinkExtor dan skrip rss2html. Jadi sebagian kode diambil dari kedua sumber di atas. Berikut ini kode sumbernya :
#!/usr/bin/perl</blockquote>
<blockquote>#</blockquote>
<blockquote>use strict;
use LWP::UserAgent;
use HTML::LinkExtor;
use URI::URL;
use Getopt::Std;
getopts('t:f:');
our($opt_t, $opt_f);
my $url = $opt_t; # for instance
my $log = $opt_f;
my $item;
my $ua = LWP::UserAgent->new;
die("\n[~] Must be fill the target url !!!\nUsage : $0 -t \"http://www.google.co.id\" -f \"tesku.html\"\n") if not ($opt_t);
# Set up a callback that collect image links
my @imgs = ();
sub callback {
my($tag, %attr) = @_;
return if $tag ne 'a'; # we only look closer at <img ...>
push(@imgs, values %attr);
}
# Make the parser. Unfortunately, we don't know the base yet
# (it might be diffent from $url)
my $p = HTML::LinkExtor->new(\&callback);
# Request document and parse it as it arrives
my $res = $ua->request(HTTP::Request->new(GET => $url),
sub {$p->parse($_[0])});
# Expand all image URLs to absolute ones
my $base = $res->base;
@imgs = map { $_ = url($_, $base)->abs; } @imgs;
# Print them out
#print join("\n", @imgs), "\n";
&printlog(<<HTML);
<title>Result of Live Link Extractor</title>
<table bgcolor="#000000" border="0" width="200"><tr><td>
<TABLE CELLSPACING="1" CELLPADDING="4" BGCOLOR="#FFFFFF" BORDER=0 width="100%">
<tr>
<td valign="middle" align="center" bgcolor="#EEEEEE"><font color="#000000" face="Arial,Helvetica"><B><a href="http://bimatampan.wordpress.com">BimaTampan's Blog</a></B></font></td></tr>
<tr><td>
HTML
# print the channel items
foreach $item (@imgs) {
#next unless defined($item->{'title'}) && defined($item->{'link'});
&printlog("<li><a href=\"$item\">$item</a><BR>\n");
}
&printlog(<<HTML);
</td>
</TR>
</TABLE>
</td></tr></table>
HTML
sub printlog {
print $_[0];
open(LOO,">>$log");
print LOO $_[0];
close(LOO);
return;
}
Skrip ini akan men-download halaman yang dimaksud dan kemudian akan mem-parsing-nya dengan mengumpulkan hasilnya ke sebuah array (kumpulan link URL), terakhir akan menampilkan isi array tersebut ke sebuah file html yang berisi live link URL nya (bisa diklik langsung). Contoh :
E:\data\linkextract>linkex_0003.pl -t "http://www.google.co.id" -f "tes123.html" <title>Result of Live Link Extractor</title> <table bgcolor="#000000" border="0" width="200"><tr><td> <TABLE CELLSPACING="1" CELLPADDING="4" BGCOLOR="#FFFFFF" BORDER=0 width="100%"> <tr> <td valign="middle" align="center" bgcolor="#EEEEEE"><font color="#000000" fac e="Arial,Helvetica"><B><a href="http://bimatampan.wordpress.com">BimaTampan's Bl og</a></B></font></td></tr> <tr><td> <li><a href="http://images.google.co.id/imghp?hl=id&tab=wi">http://images.google .co.id/imghp?hl=id&tab=wi</a><BR> <li><a href="http://groups.google.co.id/grphp?hl=id&tab=wg">http://groups.google .co.id/grphp?hl=id&tab=wg</a><BR> <li><a href="http://books.google.co.id/bkshp?hl=id&tab=wp">http://books.google.c o.id/bkshp?hl=id&tab=wp</a><BR> <li><a href="http://blogsearch.google.co.id/?hl=id&tab=wb">http://blogsearch.goo gle.co.id/?hl=id&tab=wb</a><BR> <li><a href="http://mail.google.com/mail/?hl=id&tab=wm">http://mail.google.com/m ail/?hl=id&tab=wm</a><BR> <li><a href="http://www.google.co.id/intl/id/options/">http://www.google.co.id/i ntl/id/options/</a><BR> <li><a href="http://www.google.co.id/dirhp?hl=id&tab=wd">http://www.google.co.id /dirhp?hl=id&tab=wd</a><BR> <li><a href="http://picasaweb.google.co.id/home?hl=id&tab=wq">http://picasaweb.g oogle.co.id/home?hl=id&tab=wq</a><BR> <li><a href="http://docs.google.com/?hl=id&tab=wo">http://docs.google.com/?hl=id &tab=wo</a><BR> <li><a href="http://www.google.co.id/url?sa=p&pref=ig&pval=3&q=http://www.google .co.id/ig%3Fhl%3Did%26source%3Diglk&usg=AFQjCNEaYzT2ATjWTNBxNj1-0CqEhXatDA">http ://www.google.co.id/url?sa=p&pref=ig&pval=3&q=http://www.google.co.id/ig%3Fhl%3D id%26source%3Diglk&usg=AFQjCNEaYzT2ATjWTNBxNj1-0CqEhXatDA</a><BR> <li><a href="https://www.google.com/accounts/Login?continue=http://www.google.co .id/&hl=id">https://www.google.com/accounts/Login?continue=http://www.google.co. id/&hl=id</a><BR> <li><a href="http://www.google.co.id/search?q=Beijing+2008&hl=id">http://www.goo gle.co.id/search?q=Beijing+2008&hl=id</a><BR> <li><a href="http://www.google.co.id/advanced_search?hl=id">http://www.google.co .id/advanced_search?hl=id</a><BR> <li><a href="http://www.google.co.id/preferences?hl=id">http://www.google.co.id/ preferences?hl=id</a><BR> <li><a href="http://www.google.co.id/language_tools?hl=id">http://www.google.co. id/language_tools?hl=id</a><BR> <li><a href="http://www.google.co.id/setprefs?sig=0_Wlj5UMtqXY_7NCUJX1ONlS1_TnU= &hl=en">http://www.google.co.id/setprefs?sig=0_Wlj5UMtqXY_7NCUJX1ONlS1_TnU=&hl=e n</a><BR> <li><a href="http://www.google.co.id/setprefs?sig=0_Wlj5UMtqXY_7NCUJX1ONlS1_TnU= &hl=jw">http://www.google.co.id/setprefs?sig=0_Wlj5UMtqXY_7NCUJX1ONlS1_TnU=&hl=j w</a><BR> <li><a href="http://www.google.co.id/intl/id/ads/">http://www.google.co.id/intl/ id/ads/</a><BR> <li><a href="http://www.google.co.id/intl/id/about.html">http://www.google.co.id /intl/id/about.html</a><BR> <li><a href="http://www.google.com/ncr">http://www.google.com/ncr</a><BR> </td> </TR> </TABLE> </td></tr></table> E:\data\linkextract>
kemudian coba lihat ke file tes123.html , silahkan diklik. Anda akan melihat semua alamat URL yang terkandung di halaman yang di-grabber tadi. Selamat mencoba.
