Comment gérer un "pool" de PhantomJS instances

Je suis la planification d'un webservice pour ma propre utilisation en interne qui prend un argument, une URL et retourne html représentant le résolu DOM à partir de cette URL. Par résolu, je veux dire que le webservice d'abord obtenir la page à l'URL, puis utilisez PhantomJS pour "restituer" la page, et ensuite de retour à l'résultant de la source après tout, DHTML, AJAX appels, etc sont exécutées. Cependant le lancement de fantôme sur une demande de base (dont je fais maintenant) est façon trop lent. Je préférerais avoir un pool de PhantomJS cas, avec une toujours disponible pour servir le dernier appel à mon webservice.

A aucun travail sur ce genre de chose avant? Je préfère la base de ce webservice sur le travail des autres que d'écrire un gestionnaire de pool /serveur proxy http pour moi-même à partir de zéro.

Plus de Contexte: j'ai listé les 2 projets similaires que j'ai vu jusqu'à présent ci-dessous et pourquoi j'ai évité de chacun, ce qui entraîne dans cette question à propos de la gestion d'un pool de PhantomJS instances de la place.

jsdom - de ce que j'ai vu il a une grande fonctionnalité pour l'exécution de scripts sur une page, mais il ne tente pas de reproduire le comportement du navigateur, donc, si je devais l'utiliser comme un objectif général de "DOM " resolver" il y aurait finissent par être beaucoup de codage supplémentaire pour gérer tous les types de bords des cas, l'appel, etc. Le premier exemple que j'ai vu était manuellement l'appel de la onload() fonction de la balise body pour une application de test j'ai configuré l'aide d'un noeud. Il semblait que le début d'un profond trou de lapin.

Sélénium - Il a juste soo beaucoup plus de pièces mobiles, de sorte que la configuration d'un pool de gérer longue durée de vie instances de navigateur en sera que plus compliqué que d'utiliser PhantomJS. Je n'ai pas besoin de c'est l'enregistrement de la macro /script avantages. Je veux juste un webservice qui est aussi performant à obtenir une page web et de le résoudre DOM comme si j'étais la navigation vers cette URL dans un navigateur (ou même plus vite, si je peux le faire ignorer les images etc.)

InformationsquelleAutor Trindaz | 2012-04-01