为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Google App Script 在 Apify 中创建搜索词

如何使用 Google App Script 在 Apify 中创建搜索词

holdtom 2022-06-09 19:21:01
我正在尝试使用 Google App Script 通过将搜索词设为变量来更改 Apify Google Search Scraper 中的搜索查询。https://apify.com/apify/google-search-scraper我想看看我是否可以通过它的代码引用它。https://github.com/apifytech/actor-google-search-scraper/blob/master/src/main.js我得到这个<!DOCTYPE html><html><head>  <link rel="stylesheet" type="text/css" class="__meteor-css__" href="https://cdn.apify.com/35dedb64425e459215b6d9b580601d18eccb1d29.css?meteor_css_resource=true"><meta charset="utf-8" />    <title>My Apify</title>    <meta name="description" content="Apify (formerly Apifier) is the world’s most advanced web scraping and automation platform. Turn any website into an API in a few minutes." />    <meta name="copyright" content="Copyright&copy; 2018 Apify Technologies s.r.o. All rights reserved." />    <meta name="keywords" content="web scraper, web crawler, data extraction, API" />    <meta name="robots" content="index, follow" />    <meta name="referrer" content="origin" />    <meta name="viewport" content="width=device-width, initial-scale=1" /></head><body></body></html>我的代码function runSearch() {  var formData = {    initialRequests : 'banks in phoenix',  };  var options = {    'method' : 'post',    'payload' : formData  };  const test = UrlFetchApp.fetch('https://my.apify.com/tasks/<my-task-id>', options);  Logger.log(test);}我需要改变什么?
查看完整描述

2 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

有很多事情你需要改变。

1) 您正在使用您的私人登录 URL - https://my.apify.com/tasks/xLojrg7GEYkQbGBBL。相反,您需要检查正确 URL 上的 API 选项卡以通过 API 调用此任务 - https://api.apify.com/v2/actor-tasks/xLojrg7GEYkQbGBBL/runs?token=YOUR_TOKEN(交换您的 Apify API 令牌从您的帐户标签)

2)您传递查询的字段不被称为initialRequests但是queries。查看您的任务,将您的输入切换为 JSON,您将看到如何在 JSON 中调用这些字段。

3) 不幸的是,目前 Apify 不允许通过单个 API 调用获取数据集数据(例如来自 Google Search Scraper)以进行更长时间的运行。查看这篇解释如何通过 API 集成的文章。


查看完整回答
反对 回复 2022-06-09
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

获取内容文本HTTPResponse。

改变:

Logger.log(test);

至:

Logger.log(test.getContentText());

根据UrlFetchApp文档,该fetch()方法返回一个类型为: 的对象HTTPResponse。您希望通过将getContentText()方法应用于HTTPResponse对象来获取内容文本。如下。


// Make a GET request and log the returned content.

var response = UrlFetchApp.fetch('http://www.google.com/');

Logger.log(response.getContentText());

更改请求参数以符合文档。

改变:

initialRequests : 'banks in phoenix',

至:

queries: 'banks in phoenix',

在此处查看 Google Search Results Scraper 文档。


下表显示了由其输入模式定义的参与者 INPUT 字段的规范。当使用 API 运行 actor 时,可以 [...] 在 JSON 对象中提供这些字段。在文档中阅读更多内容。


...


搜索查询或 URL


Google 搜索查询(例如纽约市的食物)和/或完整 URL(例如https://www.google.com/search?q=food+NYC)。


每行输入一项。


可选

类型:字符串


JSON 示例

"queries": "Hotels in NYC

  Restaurants in NYC

  https://www.google.com/search?q=restaurants+in+NYC"

因此,总而言之,尝试将您的代码更改为以下内容。

const runSearch = () => {

  const formData = {

    queries: 'banks in phoenix',

  };

  const options = {

    method: 'post',

    payload: formData,

  };

  const test = UrlFetchApp.fetch(

    'https://my.apify.com/tasks/<my-task-id>',

    options,

  );

  const response = test.getContentText();

  Logger.log( 'response\n%s', response, );

}


查看完整回答
反对 回复 2022-06-09
  • 2 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信