GDocs脚本使用UrlFetchApp在表单后面获取Web信息

时间:2013-05-24 12:49:04

标签: google-apps-script

我想使用GDocs获取一些Web数据,但数据在表单后面,所以我需要将一些数据发布到表单以获得结果。 (所以我不能使用ImportXML等) 我尝试使用的函数是https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app,但我真的不知道从哪里开始,因为我没有太多的java脚本经验。 有没有人有一个脚本,需要一个网址,表格名称&要发布的数据可以在GDocs中使用吗?

1 个答案:

答案 0 :(得分:0)

这里有一个这样的脚本示例:How do I use Google Apps Script to change a CSS page to one with inline styles?

这是一个不同的应用程序,但该方法适用。这是一个让你入门的骨架功能。

payload对象应包含要模拟的表单数据的名称/值对。应更改url以匹配您提交表单的网站。通过调用POST发出UrlFetchApp.fetch()请求后,您应该能够使用Does Google Apps Script have something like getElementById?中的getElementByVal()实用程序解析响应。

function postForm() {
  // Generate a POST request with form data.
  var payload =
  {
    "name" : 'Anonymous Person',   // Replace with relevant name / value pairs
    "town" : "Springfield"
  };

  // Because payload is a JavaScript object, it will be interpreted as
  // an HTML form. (We do not need to specify contentType; it will
  // automatically default to either 'application/x-www-form-urlencoded'
  // or 'multipart/form-data')

  var options =
  {
    "method" : "post",
    "payload" : payload,
    "muteHttpExceptions" : true
  };

  var url = "http://form.somewhere.com";   // Replace as appropriate
  var response = UrlFetchApp.fetch(url, options);

  // Put the receieved xml response into XMLdocument format
  var xml = response.getContentText();
  var doc = XmlService.parse(xml);

  // Extract the details you want...
  var someData = getElementByVal( doc, 'textarea', 'name', 'text' );

  ...
}