Komando-lerroaren bitartez bi bilaketa-patroi eman, eta patroi bakoitzaren agerpen kopurua kalkulatzen du segidan datorren programak. Aurretik ere egin ditugu antzekoak, baina programa honen berritasuna fitxategi bat miatu beharrean teklatu bidez helbidea idatzi eta web eta bertatik atzitu daitezkeenak miatzean datza.
Hona hemen, programaren erabilera posible bat:
>perl agerpenWeb.pl a e
Ze helbidetan begiratu behar dut?
www.erabili.com
a agerpen kopurua: 13807
e agerpen kopurua: 11015
>
Programa honek erabilera ugari ditu, besteak beste hiztegi edo kontsultarako
corpus gisa erabil genezake sarea. Adibidez, nola idatzi behar da : “handi” edo
“haundi”?
>perl agerpenWeb.pl haundi handi
Ze helbidetan begiratu behar dut?
www.berria.info
haundi agerpen kopurua: 0
handi agerpen kopurua: 28
>
agerpenWeb.pl Perl programa
#!/usr/bin/perl
use warnings;
use strict;
use LWP::Simple;
print(“Ze helbidetan begiratu behar dut?n”);
my $html = <STDIN>;
chomp($html);
$html = “http://” . $html;
# Jaso bilaketa-patroiak
my $sarBat = $ARGV[0];
my $sarBi = $ARGV[1];
my $agerpenBat = 0;
my $agerpenBi = 0;
my ($weba, @linkak);
# Bisitautako web orrien helbideak
my @bisitatuak;
# Bisitatu gabeko web orrien helbideak
my @bisiGabeak;
# Esteka kopuru maximoa
my $linkMax = 10;
# Bisitatutako link edo web orri kopurua
my $linkop = 0;
# Gehitu hasierako helbidea bisitatu gabekoen taldeari
push(@bisiGabeak, $html);
# Bisitatu gabeko helbiderik gertatzen den artean eta
# esteka kopuru maximora iritsi bitartean
while ($#bisiGabeak > -1 and $linkop < $linkMax) {
$html = shift(@bisiGabeak);
# array-ko lehen helbidea hartu.
# bisitatua dagoeneko?
if (bisitatua($html) == 0) {
$linkop++;
# lortu web orriaren edukia
$weba = get($html);
# web orriko estekak atera eta gorde
@linkak = linkak_atera($weba);
# Gehitu estekak bisitatu gabekoen zerrendara
push(@bisiGabeak, @linkak);
$linkop++;
while ($weba =~ /($sarBat|$sarBi)/gi) {
# Adierazpen erregularraren aukerak:
# g globala (agerpen guztiak)
# i letra larri/xeheak ez bereizi
# bat egitea $sarrera1 edo $sarrera2-k
# eragin du?
if ($1 eq $sarBat) {
$agerpenBat++;
}
if ($1 eq $sarBi) {
$agerpenBi++;
}
}
# Uneko orria bisitatuen zerrendara pasa
push(@bisitatuak, $html);
}
}
print(“$sarBat agerpen kopurua: $agerpenBatn”);
print(“$sarBi agerpen kopurua: $agerpenBi”);
# Azpiprograma
# Helbidea dagoeneko bisitatu badugu 1 itzuliko du, 0
# bestela
sub bisitatua {
my $helb = shift();
foreach my $i (@bisitatuak) {
# kontuz, aldagai orokorra erabiltzen ari gara
if ($i eq $helb) {
return 1;
}
}
return 0;
}
# Argumentu bezala pasatako web orriaren estekak atera
# eta array batean itzuli
sub linkak_atera {
my $orri = shift();
my @lerroak = split(/n/, $orri);
my @URL;
foreach my $lerro (@lerroak) {
if ($lerro =~ /<a href=”(http:[^”]+)”(.*)>(.*)</a>/) {
if ($1 !~ /(jpg|gif|png|bmp|tiff|pdf|doc)/) {
# Ez dadila ez irudia ezta dokumentua izan
push(@URL, $1);
}
}
}
return @URL;
}
Anonimoa says:
Esate baterako, berrietan agertzen diren izen edo oro har hitzen kopurua jakinik, ezer irakurri aurretik gaurkotasunik handiko hitzak diren erabakitzeko aukera izatea eskergarria da ezin azterketari hasiera eman baino lehen.
Moldatu dugun programa honekin, geuk aukeratutako ezein web orritan eta nahi adina esteka jarraituz, beti ere, emandako webetako estekei jarraiki eta haietatik atera gabe, aurrez emandako bi hitzen agerpen kopurua eta testuingurua lor genezake.
Honek web orriak geronek aukeratzeko modua damaigu eta agian, zenbateko osoan baztertu beharreko hitzei antzematea, testuinguruari begira.
Adibidea:
C:UsersRibaryMikelenperl>perl agerpenWebmurritz4webetanmoldatuz.pl Celaa Real
Idatzi zein iturritatik jaso nahi dituzun emaitzak: http://www.berria.info http://www.diariova
sco.com http://www.sustatu.com
Zenbat esteka jarraitu nahi duzu? 50
Hau aztertzen: http://www.berria.info
Hau aztertzen: http://www.diariovasco.com
udad Real
5 – REAL SOCI
“>La Real cae
Foro Real Soci
5 – Real Soci
“>La Real cae
n la real se v
e la real para
a al Real Madr
Hau aztertzen: http://www.sustatu.com
(…)
Hau aztertzen: http://www.berria.info/ekonomia/
Hau aztertzen: http://www.berria.info/mundua/
Celaa agerpen kopurua: 0
Real agerpen kopurua: 11
Programa:
#!/usr/bin/perluse warnings;use strict;use LWP::Simple;print “Idatzi zein iturritatik jaso nahi dituzun emaitzak: “;my $iturri = <STDIN>;chomp $iturri;my @html_laburra = split (/[ ]+/, $iturri); my @html_luzea = ();foreach my $htm (@html_laburra) { my $lag = “http://” . $htm; push (@html_luzea, $lag);}# Jaso bilaketa patroiakmy $sarBat = $ARGV[0];my $sarBi = $ARGV[1];my $agerpenBat = 0;my $agerpenBi = 0;my ($weba, @linkak);#bisitautako web orrien helbideakmy @bisitatuak;#bisitatu gabeko web orrien helbideakmy @bisiGabeak;#esteka kopuru maximoaprint “Zenbat esteka jarraitu nahi duzu? “;my $linkMax = <STDIN>;chomp $linkMax;#bisitatutako link edo web orri kopuruamy $linkop = 0;#Gehitu hasierako helbidea bisitatu gabekoen taldeari@bisiGabeak = @html_luzea;# Bisitatu gabeko helbiderik gertatzen den artean eta# esteka kopuru maximora iritsi bitarteanwhile ($#bisiGabeak > -1 and $linkop < $linkMax) { my $html = shift(@bisiGabeak); #array-ko lehen helbidea hartu. # bisitatua dagoeneko? if (bisitatua($html) == 0) { print (“Hau aztertzen: $htmln”); $linkop++; # lortu web orriaren edukia $weba = get($html); # web orriko estekak atera eta gorde @linkak = linkak_atera($weba); # Gehitu estekak bisitatu gabekoen zerrendara push(@bisiGabeak, @linkak); while ($weba =~ /(.{4}[ .,?]($sarBat|$sarBi).{5})/gi) { # Adierazpen erregularraren aukerak: # g globala (agerpen guztiak) # i letra larri/xeheak ez bereizi # Bategitea $sarrera1 edo $sarrera2-k eragin du? my $balioa = $1; if ($balioa =~ /$sarBat/gi) { $agerpenBat++; print (“$balioan”); } if ($balioa =~ /$sarBi/gi) { $agerpenBi++; print (“$balioan”); } } # Uneko orria bisitatuen zerrendara pasa push(@bisitatuak, $html); }}print(“$sarBat agerpen kopurua: $agerpenBatn”);print(“$sarBi agerpen kopurua: $agerpenBin”);# Azpiprograma# Helbidea dagoeneko bisitatu badugu 1 itzuliko du, 0 bestelasub bisitatua { my $helb = shift(); foreach my $i (@bisitatuak) { #kontuz, aldagai orokorra erabiltzen ari gara if ($i eq $helb) { return 1; } } return 0;}# Argumentu bezala pasatutako web orriaren estekak atera # eta array batean itzulisub linkak_atera {my $orri = shift();my @lerroak = split(/n/, $orri);my @URL; foreach my $lerro (@lerroak) { if ($lerro =~ /<a href=”(http:[^”]+)”/) { my $helb1 = $1; if (($helb1 !~ /(jpg|gif|png|bmp|tiff|pdf|doc)/) #Ez dadila ez irudia ezta dokumentua ere izan && badauka ($helb1, @html_laburra)){ # Azpiprograma hau sartu dugu nahi dugun helbidea push(@URL, $helb1); # hartu eta arraian sartzeko. } } } return @URL;}sub badauka { my $h = shift(); my @taula = @_ ; my $emaitza = 0; foreach my $helbide_bat (@taula) { if ($h =~ /$helbide_bat/) { $emaitza = 1; } } return $emaitza; }
Koldo Gojenola says:
Koldo Gojenola says:
PrentsometroaMoldaketa bat egin dugu programa honen gainean. Ideia da erabiltzaileak bi hitz sartzea, topatu nahi dituen elementuak. Sistemak web-helbideen zerrenda bat aztertuko du, eta bakoitzeko emango du zenbatetan aurkitu duen hitz bakoitza. Adibidez:perl prentsometroa “Athletic” “Real Sociedad”Egunkaria Athletic Real Sociedadhttp://www.berria.info 3 0http://www.sustatu.com 0 0http://www.argia.com 0 0http://www.eitb.com/albisteak 0 0http://www.diariovasco.com 3 158http://www.elcorreo.com 330 5http://www.elpais.com 0 0http://www.elmundo.es 11 0http://www.abc.es 0 0http://www.diariodenavarra.es 0 0Programak erakusten duenez, hitz bakoitzaren agerpen-kopurua oso desberdina da egunkarien artean (baita egun batetik bestera, noski).Programa honek egunero bi terminoen arteko konparaketak egitea ahalbidetzen du, horrela bakoitzaren “gaurkotasuna” neurtuz, komunikabide bakoitzean. Hona hemen bere kodea:#!/usr/bin/perluse warnings;use strict;use LWP::Simple;my $html;# Jaso bilaketa patroiakmy $sarBat = $ARGV[0];my $sarBi = $ARGV[1];my @prentsa = (“http://www.berria.info”, “http://www.sustatu.com”,”http://www.argia.com”,”http://www.eitb.com/albisteak”,”http://www.diariovasco.com”,”http://www.elcorreo.com”,”http://www.elpais.com”,”http://www.elmundo.es”,”http://www.abc.es”, “http://www.diariodenavarra.es”);print(“Egunkaria t t t $sarBat t $sarBin”);# listatuaren goiburukoa idatzi#bisitautako web orrien helbideakmy @bisitatuak;#bisitatu gabeko web orrien helbideakmy @bisiGabeak;#esteka kopuru maximoamy $linkMax = 30;foreach my $egunkaria (@prentsa) {my $agerpenBat = 0;my $agerpenBi = 0;my ($weba, @linkak);@bisiGabeak = ();@bisitatuak = ();#bisitatutako link edo web orri kopuruamy $linkop = 0;#Gehitu hasierako helbidea bisitatu gabekoen taldeari$html = $egunkaria;push(@bisiGabeak, $html);# Bisitatu gabeko helbiderik gertatzen den artean eta# esteka kopuru maximora iritsi biatrteanwhile ($#bisiGabeak > -1 and $linkop < $linkMax) { $html = shift(@bisiGabeak); #array-ko lehen helbidea hartu. # bisitatua dagoeneko? if (bisitatua($html) == 0) { #print (“Hau aztertzen: $htmln”); $linkop++; # lortu web orriaren edukia $weba = get($html); if (defined $weba) { # web orriko estekak atera eta gorde @linkak = linkak_atera($egunkaria, $weba); # Gehitu estekak bisitatu gabekoen zerrendara push(@bisiGabeak, @linkak); while ($weba =~ /($sarBat|$sarBi)/gi) { # Adierazpen erregularraren aukerak: # g globala (agerpen guztiak) # i letra larri/xeheak ez bereizi # Bategitea $sarrera1 edo $sarrera2-k eragin du? my $balioa = $1; if ($balioa =~ /$sarBat/i) { $agerpenBat++; #print (“$balioan”); } if ($balioa =~ /$sarBi/i) { $agerpenBi++; #print (“$balioan”); } } #while } #if # Uneko orria bisitatuen zerrendara pasa push(@bisitatuak, $html); }}$egunkaria.= ” “x(30-length($egunkaria));print(“$egunkaria t $agerpenBat t t t $agerpenBin”);}# Azpiprograma# Helbidea dagoeneko bisitatu badugu 1 itzuliko du, 0 bestelasub bisitatua { my $helb = shift(); foreach my $i (@bisitatuak) { #kontuz, aldagai orokorra erabiltzen ari gara if ($i eq $helb) { return 1; } } return 0;}# Argumentu bezala pasatko web orriaren estekak atera# eta array batean itzulisub linkak_atera {my $egunk = shift();my $orri = shift();my @lerroak = split(/n/, $orri);my @URL; foreach my $lerro (@lerroak) { if ($lerro =~ /<a href=”(http:[^”]+)”/) { my $helb1 = $1; if (($helb1 !~ /(jpg|gif|png|bmp|tiff|pdf|doc)/) #Ez dadila ez irudia ezta dokumentua ere izan && ($helb1 =~ /$egunk/)) { # eta egunkariaren gunetik atera gabe push(@URL, $helb1); } } } return @URL;}
ixa says:
Formato hobean ikus daiteke hemen:
– prentsometro.pl prgograma: https://copy.com/wrDEVbRyHJYG4HFK
– exekuzioaren emaitzak (2015/05/14): https://copy.com/Nk69wL47SA9JcePl