使用Google Apps脚本来抓取动态网页

时间:2012-12-09 14:33:56

标签: javascript google-apps-script urlfetch

我想使用Google Script从其他网站上阅读一些项目的数据。问题中的页面是 Dyanmic ;它们包含在初始页面加载后通过JavaScript调用服务器加载的内容。通常,在某些静态内容中,这种方法很好但我不熟悉JavaScript和Google Apps脚本,因此如果通过JavaScript(例如通过AJAX)异步加载内容,则不知道如何获取内容。

可以找到一个示例here,显示在广播电台播放的最后一首曲目。但是,这些轨道是使用JavaScript加载的,而不是包含我得到的字符串的表

<td class="row2"><span id="track_2">&nbsp;</span></td>

当我使用时:

UrlFetchApp.fetch(url).getContentText();

如果我在浏览器中保存HTML,那么正确的数据字符串就在那里:

<td class="row2" id="track_2">15:12 Will Smith - Men In Black</td>
                     ^^^^^^^  ^^^^^ ^^^^^^^^^^   ^^^^^^^^^^^^

使用Google Apps脚本有什么办法吗?

1 个答案:

答案 0 :(得分:0)

一般情况下,不是。如果您可以对它正在进行的工作进行反向工程,那么您可能可以执行相同的JavaScript调用,但如果它需要任何服务器协调,那么可能性很大。从理论上讲,可以在Google Apps脚本(如env-js)中运行JavaScript浏览器实现,这可以做到这一点,但在实践中我认为如果不是不可能的话,它将非常困难。