基于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没有带来相同的结果,比如手动搜索,我错过了什么?
答案 0 :(得分:1)
我对西里尔语查询有类似的问题。 CPAN的Google::Search
和REST::Google
都不适用于我 - 与手动测试相比,它们回报的结果更少或没有。
最后我使用WWW::Mechanize
和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" }
答案 1 :(得分:0)
查看Google::Search的POD,看起来它希望您将搜索字词传递给Web
,而不是网址。我从CPAN下载了test script,运行它,它似乎产生了预期的结果:
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...
我意识到这并没有具体回答你的问题,但也许它会引导你朝着正确的方向前进。