[linux-l] [OT] url suchen regex

Robert C. Helling r.helling at iu-bremen.de
Di Nov 7 17:40:24 CET 2006


On Tue, 7 Nov 2006, U. Bauermann wrote:

> Ohja, das würde mich auch interessieren.
>
> Anfang diesen Jahres konnte man ja noch nach Sonderzeichen mitsuchen (zB 
> /etc/squid.conf), heute werden die Sonderzeichen ausgefiltert (ergibt etc 
> squid). Lauf Google war das notwendig, weil diese Möglichkeit die Suchengine 
> überlastete.
>
> Grüsse
> Uwe
>
> GoogleIvan F. Villanueva B. schrieb:
>> Hallo,
>> kennt jemand eine Möglichkeit von einer Internet-Suchmaschine, URLs nach 
>> eine
>> Regex zu suchen? z.B.:
>>     aaa.com/.*bb
>

Ich habe mir mal fuer den Hausgebrauch ein cgi-Skript geschrieben, dass 
einen Google Querry und eine Regex bekommt und unter den Ergebnissen von 
google nach der Regex sucht. Ist aber leider nur ein q&d hack fuer den 
Hausgebrauch und nicht wirklich sicher.

Robert

#!/usr/bin/perl -w

use LWP::Simple;
use Net::Google;
use CGI;

use constant LOCAL_GOOGLE_KEY => "Hier muss Dein Google API Key Rein";

my $google = Net::Google->new(key=>LOCAL_GOOGLE_KEY);
my $search = $google->search();

$q = new CGI;

if($q->param){
     $q->param('offset',$q->param('offset')+10);
}

print $q->header,$q->start_html("Robert's regex google refinement"),
     $q->h1("Robert's regex google refinement"),

     $q->start_form,
     "Query: ",
     $q->textfield(-name => 'query',
                   -size => 50),
     "Regex: ",
     $q->textfield(-name => 'regex',
                   -size => 20),
     $q->br,
     "Max querries: ",
     $q->textfield(-name => 'maxq',
                   -size => 5,
                   -default => 50,
                   -override => 1),
     "Offset: ",
     $q->textfield(-name => 'offset',
                   -size => 5),
     $q->submit(-name => 'Here we go'),

     $q->end_form;
print "<a href=",$q->self_url,">Hierher</a> ";
$q->param('offset',$q->param('offset')+10);
print "<a href=",$q->self_url,">Spaeter</a>";
if($q->param){
     $|=1;
     print "HOHO You want me to querry Google for '",$q->param('query'),"' 
matching ",$q->param('r
egex'),'<br>';

     $search->query($q->param('query'));
     $search->starts_at($q->param('offset'));
     $search->max_results($q->param('maxq'));
     $search->lr("en","de");
     $results = $search->results();
     foreach $treffer(@$results){
         print "Processing ",$treffer->title(),"<br>\n";
         my $page = &get($treffer->URL());
         $regex = $q->param('regex');
         $/='tatatatatat';
         if($page =~ /$regex/s){
                 print $q->a({href => $treffer->URL()},$treffer->title()),' 
matches <br>';
         }
     }
     print map { '<a href="'.$_->URL().'">'.$_->title()."</a><BR>" } 
@matches;
     }

print    $q->end_html;


-- 
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oO
Robert C. Helling     School of Science and Engineering
                       International University Bremen
print "Just another   Phone: +49 421-200 3574
     stupid .sig\n";   http://www.atdotde.de


Mehr Informationen über die Mailingliste linux-l