3

私のウェブアプリは、GoogleのAngularJSを介して動的に作成されています。

ページの静的バージョンを生成したい。

なぜ

GoogleのようなWebスクレイパーはJavaScriptを実行してレンダリングします。ただし、コンテンツを静的な同等のものと同じように扱わないでください。

参照:

どのように

正確な方法はわかりませんが(これが私が尋ねている理由です)、ブラウザの「要素の検査」が提示するのと同じソースにアクセスしたいと思います。Ctrl+ U(ページソースの表示)が表示するソースではなく。

ページをレンダリングするスクリプトができたら、HTML+CSSを「吐き出す」。これらの「生成された」ファイルをWebサーバーに配置します。次に、「cron」ジョブがスケジュールされ、定期的にファイルが再生成されます。

これらの静的ファイルは、動的ファイルの代わりに後で提供されます。JavaScriptが無効になっている場合、および/またはスクレーパーがサイトに「アクセス」している場合。

4

1 に答える 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 に答える