sirve - ¿Cómo uso Perl''s Google:: Search para buscar URL específicas?
rel nofollow w3c (2)
Al mirar el POD para Google :: Search , parece que espera que pase los términos de búsqueda a la Web
, en lugar de una URL. Descargué un script de prueba de CPAN, lo ejecuté y parece producir los resultados esperados:
use strict;
use warnings;
use Google::Search;
my $search = Google::Search->Web(q => "rock");
my $result = $search->first;
while ($result) {
print $result->number, " ", $result->uri, "/n";
$result = $result->next;
}
print $search->error->reason, "/n" if $search->error;
__END__
0 http://www.rock.com/
1 http://en.wikipedia.org/wiki/Rock_music
2 http://en.wikipedia.org/wiki/Rock_(geology)
3 http://rockyourphone.com/
4 http://rockhall.com/
5 http://www.co.rock.mn.us/
6 http://www.co.rock.wi.us/
7 http://www.rockride.org/
etc...
Me doy cuenta de que esto no responde específicamente a su pregunta, pero tal vez lo guíe en la dirección correcta.
El módulo Google :: Search, que está basado en la API de búsqueda de AJAX, no parece funcionar muy bien, ¿o simplemente soy yo?
Por ejemplo, uso Firefox para buscar en google: http://bloggingheads.tv/forum/member.php?u=12129
Trae resultados.
Pero cuando uso el módulo de esta manera:
$google_search = Google::Search->Web ( q => "http://bloggingheads.tv/forum/member.php?u=12129" );
@result = $google_search->all;
No consigo nada en el conjunto.
¿Alguna idea?
Parece que esta API no ofrece los mismos resultados que cuando se busca manualmente, ¿me falta algo?
Tuve un problema similar con las consultas en cirílico. Tanto Google::Search
como REST::Google
de CPAN no funcionaron para mí, ya que ofrecían menos o ningún resultado en comparación con la prueba manual.
Eventualmente escribí un módulo de raspado usando WWW::Mechanize
y HTML::TreeBuilder
.
Aquí hay una muestra para obtener estadísticas de resultados:
my $tree = HTML::TreeBuilder->new_from_content($content);
if (my $div = $tree->look_down(_tag => ''div'', id => ''resultStats'')) {
my $stats = $div->as_text();
}
else { warn "no stats" }