gpt4 book ai didi

google-sheets - 使用 Google 电子表格导入 XML 并随时间保存结果

转载 作者:行者123 更新时间:2023-12-04 05:43:36 25 4
gpt4 key购买 nike

我在 Google 电子表格上使用 ImportXML 来抓取 YouTube 搜索结果并捕获我正在跟踪的视频的排名。

=IMPORTXML("https://www.youtube.com/results?search_query=control+theory&page=1"),"//div[@class='yt-lockup-byline']//a")

抓取效果很好(我得到了第一页的所有结果)。然后我查找 YouTube 结果的位置并将其保存在一个单元格中。

但是,我遇到的问题是当我尝试随时间推移跟踪该排名时。不确定如何执行此操作,但我正在寻找一种方法来运行 =ImportXML每天运行一个函数(是否有刷新命令?)并在每次运行该函数时将该单元格的结果保存在新行中。

有任何想法吗?

最佳答案

importXML输出会自动更新(大约每两个小时),但您仍然需要一个脚本来将过去的值保存在某处:通常,在另一张纸上。使用工具 > 脚本编辑器输入以下内容,调整工作表名称和具有感兴趣值的单元格。使用资源 > 当前项目的触发器将其设置为每天或每周运行。

function storeValue() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1'); // where importXML is
var value = sheet.getRange("B3").getValue(); // where the cell of interest is
var sheet2 = ss.getSheetByName('Sheet2'); // where to store the data
var height = sheet2.getLastRow();
sheet2.insertRowAfter(height);
sheet2.getRange(height+1, 1, 1, 2).setValues([[new Date(), value]]);
}

每次运行时,脚本都会在 Sheet2 的底部附加两个单元格:一个带有时间戳(应该按这种格式设置),一个带有与该时间戳对应的值。

用于存储一系列值的版本,例如 B3:B7:
function storeValue() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
var values = sheet.getRange("B3:B7").getValues()[0];
var sheet2 = ss.getSheetByName('Sheet2'); // where to store the data
var height = sheet2.getLastRow();
sheet2.insertRowAfter(height);
sheet2.getRange(height+1, 1, 1, 6).setValues([[new Date()].concat(values)]);
// setting 6 cells instead of 2 on the previous line
}

关于google-sheets - 使用 Google 电子表格导入 XML 并随时间保存结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37490561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com