(2024-03-01更新:以下问题有误导性。这个错误已经报告给维护者,我找到了解决方法。请参阅评论)
我正在编写一个脚本来运行 Google 自定义搜索 API 以获取搜索结果。 当我运行以下脚本时,成功得到结果。
#! /bin/perl
# minisearch.pl
use strict;
use warnings;
use WWW::Google::CustomSearch;
use Data::Dumper;
use feature qw(say);
my $engine = WWW::Google::CustomSearch->new(
api_key => 'my api key',
cx => 'my search engine ID',
dateRestrict => 'm3',
#siteSearch => 'accesswire.com',
#siteSearchFilter => 'i'
);
my $result = $engine->search('mobile+pc+linux');
exit unless defined $result;
say "kind: ", $result->kind;
say "totalResults: ", $result->totalResults;
say "formattedTotalResults: ", $result->formattedTotalResults;
say "formattedSearchTime: ", $result->formattedSearchTime;
say "searchTime: ", $result->searchTime;
say "url_template: ", $result->url_template;
say "url_type: ", $result->url_type;
say "";
say "request:";
say "REQUEST:\n", Dumper $result->request;
say "";
say ">>> 10 pages >>>\n";
for my $n (1..2) {
say "=== PAGE $n ";
say "ITEMS:\n", Dumper $result->items;
say "";
sleep 10;
$result = $result->nextPage->fetch;
}
但是当我使用
siteSearch
和 siteSearchFilter
参数来限制目标站点时,它失败了。
my $engine = WWW::Google::CustomSearch->new(
api_key => 'my api key',
cx => 'my search engine ID',
dateRestrict => 'm3',
siteSearch => 'accesswire.com',
siteSearchFilter => 'i'
);
显示以下错误消息。
$ ./miniSearch.pl 缺少必需参数:totalResults at /usr/local/share/perl/5.30.0/WWW/Google/CustomSearch/Request.pm 行 30.
我已将 TotalResults 哈希条目添加到 new 中,如下所示。
my $engine = WWW::Google::CustomSearch->new(
api_key => 'my api key',
cx => 'my search engine ID',
dateRestrict => 'm3',
siteSearch => 'accesswire.com',
siteSearchFilter => 'i',
totalResults => 1000,
);
或以下。
my $engine = WWW::Google::CustomSearch->new(
api_key => 'my api key',
cx => 'my search engine ID',
dateRestrict => 'm3',
siteSearch => 'accesswire.com',
siteSearchFilter => 'i',
totalResults => '1000',
);
但是错误仍然存在。
有谁知道如何解决这个问题吗?
作为 WWW::Google::CustomSearch 的作者,我刚刚将建议的修复推送到相关问题。
https://rt.cpan.org/Ticket/Display.html?id=141609
v0.40 已修复。
https://metacpan.org/release/MANWAR/WWW-Google-CustomSearch-0.40