猿问

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

我正在尝试使用 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);

}

我需要改变什么?



holdtom
浏览 117回答 2
2回答

PIPIONE

有很多事情你需要改变。1) 您正在使用您的私人登录 URL -&nbsp;https://my.apify.com/tasks/xLojrg7GEYkQbGBBL。相反,您需要检查正确 URL 上的 API 选项卡以通过 API 调用此任务 -&nbsp;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 集成的文章。

qq_笑_17

获取内容文本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 对象中提供这些字段。在文档中阅读更多内容。...搜索查询或 URLGoogle 搜索查询(例如纽约市的食物)和/或完整 URL(例如https://www.google.com/search?q=food+NYC)。每行输入一项。可选类型:字符串JSON 示例"queries": "Hotels in NYC&nbsp; Restaurants in NYC&nbsp; https://www.google.com/search?q=restaurants+in+NYC"因此,总而言之,尝试将您的代码更改为以下内容。const runSearch = () => {&nbsp; const formData = {&nbsp; &nbsp; queries: 'banks in phoenix',&nbsp; };&nbsp; const options = {&nbsp; &nbsp; method: 'post',&nbsp; &nbsp; payload: formData,&nbsp; };&nbsp; const test = UrlFetchApp.fetch(&nbsp; &nbsp; 'https://my.apify.com/tasks/<my-task-id>',&nbsp; &nbsp; options,&nbsp; );&nbsp; const response = test.getContentText();&nbsp; Logger.log( 'response\n%s', response, );}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答