5

AJAX Search API に基づいた Google::Search モジュールがうまく動作しないようですが、それは私だけですか?

たとえば、Firefox を使用して Google を検索します: http://bloggingheads.tv/forum/member.php?u=12129

結果をもたらします。

しかし、このようにモジュールを使用すると:

$google_search = Google::Search->Web ( q => "http://bloggingheads.tv/forum/member.php?u=12129" );
@result =  $google_search->all;

配列には何もありません。

何か案が?

この API では、手動で検索した場合と同じ結果が得られないようです。何か不足していますか?

4

2 に答える 2

1

キリル文字のクエリでも同様の問題がありました。Google::SearchCPANとCPANの両方REST::Googleがうまくいきませんでした。手動テストに比べて結果が少ないか、まったく返されませんでした。

WWW::Mechanize最終的に、 andを使用してスクレイピング モジュールを作成しHTML::TreeBuilderました。

結果の統計情報を取得するサンプルを次に示します。

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" }
于 2010-09-19T18:59:53.360 に答える
1

Google::Searchの POD を見るとWeb、URL ではなく に検索語を渡すことを期待しているようです。CPAN からテスト スクリプトをダウンロードして実行したところ、期待どおりの結果が得られたようです。

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...

これはあなたの質問に具体的に答えているわけではありませんが、おそらくあなたを正しい方向に導くでしょう.

于 2010-09-19T00:39:01.580 に答える