【发布时间】:2019-04-01 03:08:28
【问题描述】:
我刚刚开始使用 Google Apps 脚本。由于最佳编码实践建议使用尽可能少的表格公式,因此我尝试使用 GAS Parser 进行网络抓取,然后将数据推送到我的电子表格中。
在我的工作表中,使用以下公式返回一个数据表,这正是我从 GAS 中寻找的数据。
=IMPORTHTML("https://finance.yahoo.com/quote/BOO.L/history?p=BOO.L", "table", 1)
here 和here 这两个问题很相似,但尝试这些方法也失败了。似乎我没有得到完整的页面内容,因为当我在下面的代码之后查看 Logger.log() 中的数据时,我没有得到任何类似于我需要的页面的内容。
UrlFetchApp.fetch(url).getContentText();
由于运行公式似乎可以完美地获取数据,我只能假设我自己的代码存在问题,但无法确定问题出在哪里。这是我迄今为止尝试过的代码;
function scrapeData() {
var url = "https://finance.yahoo.com/quote/BARC.L/history?p=BARC.L";
var fromText = '<td class="Py(10px) Ta(start) Pend(10px)"><span>';
var toText = '</span></td>';
var content = UrlFetchApp.fetch(url).getContentText();
var scraped = Parser
.data(content)
.from(fromText)
.to(toText)
.iterate();
Logger.log(scraped)
}
非常感谢任何指导。
【问题讨论】:
-
为什么不直接使用 =GOOGLEFINANCE()?
-
根据问题,我想使用尽可能少的电子表格函数。
-
Parser不是内置的 Google Apps 脚本类。你在使用图书馆吗? -
最佳编码实践?为什么要使用 js 代码,而您可以使用单个公式代码来做到这一点?
-
我曾经使用java从雅虎财经获取历史数据。然后在 2017 年被 Verizon 收购时,它不再起作用了。而且我想不出办法让它发挥作用,所以我开始使用 GOOGLEFINANCE。我现在像蛤蜊一样快乐。
标签: google-apps-script web-scraping html-parsing