3

什么

我的网络应用是通过谷歌的AngularJS动态化的。

我希望生成我的页面的静态版本。

为什么

像谷歌这样的网络爬虫执行和渲染 JavaScript;但不要以与静态等价物相同的方式对待内容。

参考:

如何

不知道具体如何——这就是我问的原因——但我想访问与浏览器的“检查元素”相同的源;而不是:Ctrl+ U(查看页面源代码)显示的来源。

一旦我有一个呈现页面的脚本;“吐出” HTML+CSS;我会将那些“生成”的文件放在我的网络服务器上。然后将安排一个“cron”作业以定期重新生成文件。

随后将提供这些静态文件而不是动态文件;当 JavaScript 被禁用和/或当刮板“访问”该站点时。

4

1 回答 1

1

这是一个解决方案,但我非常怀疑我能否找到可以运行它的公共 PaaS 云:

import spynner

if __name__=='__main__':
    url = "http://angular.github.com/angular-phonecat/step-10/app/#/phones"
    browser = spynner.Browser()
    browser.create_webview(True)
    browser.load(url, load_timeout=60)
    print browser._get_html()
    # ^ Can pipe this to a file, POST it to my server or return it as a string
    browser.close()

包:Spynner(在 Github 上)

于 2012-12-30T05:43:49.760 回答