【问题标题】:How to override Apify's actor input configuration by passing a JSON object as the POST payload?如何通过将 JSON 对象作为 POST 有效负载传递来覆盖 Apify 的演员输入配置?
【发布时间】:2019-09-10 03:44:44
【问题描述】:

尝试通过传递数据对象来覆盖 Apify 的 Google Scraper 演员的查询,如下所示。我收到 400 和 403 错误消息。当我删除数据播放负载时,它工作正常。然后它使用默认查询返回结果。

1) 传递播放负载以覆盖查询参数的正确方法是什么。

2) 如何发送多个搜索查询,例如“链接构建”、“链接构建服务”?

$.ajax({
      url : 'https://api.apify.com/v2/actor-tasks/XXXXXXX/runs?token=XXXXXXXX&waitForFinish=120,  
      method : 'POST',
      contentType: 'application/json',
       data : {   // when I add this I get 400 error.
          "queries" : "Outreach link building",
        },
       success:function(result) {
            console.log(result);
      } 

});

提前致谢。

【问题讨论】:

标签: ajax web-scraping apify


【解决方案1】:

1) 您需要对 JSON 进行字符串化并使用正确的数据类型:

$.ajax({
      url : 'https://api.apify.com/v2/actor-tasks/XXXXXXX/runs?token=XXXXXXXX&waitForFinish=120',  
      method : 'POST',
      contentType: 'application/json',
      dataType: 'json',
      data : JSON.stringify ({
          "queries" : "Outreach link building"
      }),
      success:function(result) {
        console.log(result);
      } 
});

您可以在this post 中阅读相关内容。

2) 如果您想发送多个查询,您需要使用新行分隔它们:

{
  "queries": "Outreach link building\nquery"
}

【讨论】:

  • 它工作正常。您能否也让我知道如何完成流程:一旦任务完成,触发一个事件来读取数据集。目标是要么知道数据集已准备好,要么自动获取数据集,以便我可以将它们保存在数据库中。
猜你喜欢
  • 1970-01-01
  • 2018-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-25
  • 1970-01-01
相关资源
最近更新 更多