Kri*_*Lyn 7 html web-scraping google-apps-script google-forms
有人好心地向我指出(在 Stack Overflow 之外)可以在网址中找到标识表单的表单 ID。例子:
https://docs.google.com/forms/d/
1y9XMjvZi_wlFC2FN64cdafIyGuM_7UOsn1Q61PXv5MQ/edit
其中粗体文本是表单 ID。
提前道歉,因为我不是经验丰富的剧本作家,可能会使用不正确的术语。
但是 - 我在谷歌搜索如何在 Google 表单中查找表单 ID 元素时找到了 这个问题的答案 ,但答案很旧,我的问题也很相似。我尝试搜索“Inspect Element”数据,但仍然无法识别 ID 属性。我尝试搜索代码:
还是没有运气。有人对查找表单 ID 有更新的建议吗?作为参考,我使用下面的脚本作为起点。这是取自不同/旧的形式,但功能相似,所以我希望利用它。我正在尝试查找我的表单 ID(例如第 6-7 行中的 ID)。
/**
* @NotOnlyCurrentDoc
* Limit OAuth scope to only current spreadsheet rather than all sheets in drive
*/
function onSubmit(e) {
var form = FormApp.openById('1eccBQ7Bs34Z54keGHeR8HDXmiP1UqxMi9vSDWNv6zgs');
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master');
var data = sheet.getDataRange().getValues();
//var urlCol = 26;
var responses = form.getResponses();
var timestamps = [], urls = [], resultUrls = [];
for (var i = 0; i < responses.length; i++) {
timestamps.push(responses[i].getTimestamp().setMilliseconds(0));
urls.push(responses[i].getEditResponseUrl());
}
for (var j = 1; j < data.length; j++) {
resultUrls.push([data[j][0]?urls[timestamps.indexOf(data[j][0].setMilliseconds(0))]:'']);
}
sheet.getRange(2, urlCol = 27, resultUrls.length).setValues(resultUrls);
return resultUrls;
};
Run Code Online (Sandbox Code Playgroud)
正如问题正文中提到的那样,表单 ID 可以在 Google 表单 URL 中找到,但 OP 没有提到该 URL 是编辑 URL,而不是“查看”URL。
表单所有者还可以使用网络浏览器开发工具通过搜索data-redirect-url
已分配表单 URL 来查找表单 ID:
data-redirect-url="https://docs.google.com/forms/d/form_id/edit?usp=redirect_edit_m2"
Run Code Online (Sandbox Code Playgroud)
正如 OP 所提到的,表单 ID 介于https://docs.google.com/forms/d/
和 之间/edit
。
除了查看表单 URL 之外,还可以使用 Google Apps 脚本检索表单 ID。更简单的方法是使用类似于以下的有界脚本:
function getActiveFormID(){
const id = FormApp.getActiveForm().getId();
console.log(id);
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用驱动器服务。以下示例假设只有一个名为“My Form”的文件:
function getFormId(){
const id = DriveApp.searchFiles(`title contains "My Form"`).next().getId();
console.log(id);
}
Run Code Online (Sandbox Code Playgroud)
小智 -2
从 Google Chrome 打开表单(查看模式,而不是编辑模式)。
按 F12。
在 Elements 窗口中,展开<body>
扩张<script type = "text/javascript" nonce> == $0
你应该看到:
var FB_PUBLIC_LOAD_DATA
以及您在表单上创建的每个元素及其各自的元素 ID。