SEOajaxなページもクローラーに読ませたいですよね。SpookyJSです。簡単に説明するとこんな感じPhantomJSコマンドラインから使える画面がないwebkitブラウザCasperJSPhantomJSのユーティリティ、PhantomJSをもっと便利に使えるようにするやつSpookyJScasperJSをNodejsから使えるようにするやつこういうことをしたいクローラーがアクセスしてきた時だけ、アクセスしたURLをSpookyJSサーバーに投げて、SpookyJSがそのURLにアクセスし、DOMを取得してからクローラーに返すってことをしたらよさそうです。SpookyJSをインスコSpookyJSはもちろんphantomJSとcasperJSに依存してるので、まずはこの2つをグローバルに入れる必要があります。今回は「js-spooky-complate」ってclassが読み込まれたら、その時点のDOMを返すようにしようと思います。そのクラスがなかった場合、404を返すようにします。Spookyをexports.indexの外に出したかったけど、うまくいかなかった、、、)spookyはcasperをラップしてるだけっぽいので、casperjsのコマンドは全部使えます。20行目のspooky.waitForの中で、js-spooky-complateが読み込まれるまでwaitしています。3000」を書くと3秒になります。クラス指定じゃなくて、強制的に数秒待つ場合ajaxを多用してるページなどで、特定のクラスを読み込んだら完了っていう判断をしづらい場合、強制的にクローラーからのアクセスは数秒待ってから出力って事もできます。spooky.waitForの部分を以下に置き換えます。this.exit();});これだと、強制的に2秒待ってから出力するようになります。こんな感じで、ajaxページもクローリングさせることができます。あとは一番上の図のwebサーバーで、spookyJSからの結果をmemcacheに突っ込んどいたりして、キャッシュを効かせるとなおいいかなーって思います。Trip】いつでも弾丸旅行このブログについてエンジニアとしての考え方が間逆な2人がしょーもないこと書いてます。バツイチIT業界で働くエンジニアです。名前の通りバツイチです。理論や抽象的概念が好きだけど人に説明するのが下手。インケンくんにバカにされてますインケンバツイチちゃんと同じ業界で働いています。バツイチとインケンのエンジニアブログ。