1

定期的にログインして、特定のサイトからデータをスクレイピングする必要があります。それを処理するために、Heroku で実行する CasperJS スクリプトを作成しました。

これが私ができるようにしたいことです:

app.get('/test', function(request, response) {
  scrapeStuff(function(data) {
    response.send(data);
  });
});

次に、不気味なスクリプトの最後のステップで:

spooky.then(function() {
  callback(this.getHTML());
});

残念ながら、に渡された関数scrapeStuff.then(). (変数が見つかりません: コールバック) 代わりに、それを使用this.emit()して監視する必要があります。これがどのように行われるかの例をここでspooky.on見ることができます。

エミットを使用する際の問題は、リクエストに応じてスクレイピングされたページの HTML を受け取りたいことです。だから私はにアクセスし/scrape、それが動作している間10秒待ってページを受け取り、それを呼び出すのではなく、成功したと仮定して別のURLをリクエストして最終的にHTMLを取得したい.

これは SpookyJS で実行できますか? CasperJS を直接使用するより良い方法があるかもしれません。

4

1 に答える 1

0

これらは、SpookyJS を使用した 3 つのレベルのコンテキストです: node (spooky)、casper、および Web ページ自体です。

3 つのコンテキスト間でデータを渡すことができますが、シリアル化および非シリアル化されるため、純粋な JSON オブジェクトに限定されます。

仕組みの詳細な紹介については、https://github.com/SpookyJS/SpookyJS/wiki/Introductionを参照してください。

于 2015-05-20T11:42:00.470 に答える