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::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 回答
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 回答