Perl:WWW::Google::CustomSearch:缺少必需参数?

问题描述 投票:0回答:1

(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',
    );

但是错误仍然存在。

有谁知道如何解决这个问题吗?

perl google-api google-search-api
1个回答
0
投票

作为 WWW::Google::CustomSearch 的作者,我刚刚将建议的修复推送到相关问题。

https://rt.cpan.org/Ticket/Display.html?id=141609

v0.40 已修复。

https://metacpan.org/release/MANWAR/WWW-Google-CustomSearch-0.40

© www.soinside.com 2019 - 2024. All rights reserved.