我想使用 GDocs 获取一些 Web 数据,但数据位于表单后面,因此我需要将一些数据发布到表单以获得结果。(所以我不能使用 ImportXML 等)我尝试使用的功能是https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app但我真的不知道从哪里开始因为我没有太多的java脚本经验。有没有人有一个可以在 GDocs 中使用的脚本,该脚本需要一个 url、表单名称和要发布的数据?
问问题
118 次
1 回答
0
这里有一个这样的脚本示例:如何使用 Google Apps 脚本将 CSS 页面更改为具有内联样式的页面?.
这是一个不同的应用程序,但方法适用。这是一个可以帮助您入门的骨架函数。
该payload
对象应包含您要模拟的表单数据的名称/值对。url
应该更改以匹配您提交表单的站点。通过调用发出POST
请求后UrlFetchApp.fetch()
,您应该能够使用getElementByVal()
来自Google Apps 脚本是否有类似 getElementById 的工具来解析响应?.
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' );
...
}
于 2014-01-07T18:55:12.143 回答