2012-06-27 12 views
34

Estoy revisando la documentación del Selenium WebDriver, y puede conducir Chrome, por ejemplo. Estaba pensando, ¿no sería mucho más eficiente "manejar" PhantomJS?¿Es posible utilizar Selenium WebDriver para controlar PhantomJS?

¿Hay alguna manera de utilizar Selenium con PhantomJS?

Mi uso previsto sería raspar la web: los sitios que raspe están cargados con AJAX y un montón de hermoso JavaScript, y estoy pensando que esta configuración podría ser un buen reemplazo para el marco de Scrapy Python con el que estoy trabajando actualmente .

+0

Me he dado cuenta que hay una clase interna 'PhantomJSDriver: RemoteWebDriver, ITakesScreenshot' pero no puedes crear una instancia del mismo (aún) –

Respuesta

56

PhantomJS ahora incluye el GhostDriver project.

También se sugiere utilizar PhantomJS directamente o con una biblioteca de conveniencia como CasperJS. CasperJS está específicamente diseñado para facilitar el hacer operaciones secuenciales en páginas web, perfecto para muchas tareas de automatización.

Descargo de responsabilidad: soy el autor de PhantomJS.

Editar: Como se señala en la respuesta de Nick, GhostDriver ahora está incluido en PhantomJS.

+0

Oh wow Ariya respondió, estaba leyendo algunas de tus cosas el otro día, que realmente admiro tu trabajo. Esto es algo increíble, de todos modos, si no te importa, ¿cuál es la mejor manera de incorporar PhantomJS/CasperJS en una aplicación? Estaba pensando en usar Selenium porque quiero que todo el programa se repita y se ejecute continuamente (es en tiempo real y ligeramente interactivo) Cuando estaba pasando por la documentación de Phantom, tuve la impresión de que se trataba de una herramienta de línea de comandos para usos únicos, y de llamarla desde Python me permitiría convertirlo en un programa completo. ¿Algun consejo? – Joseph

+5

Puede tomar algunas inspiraciones de muchos artículos de usuarios de PhantomJS (consulte la wiki). –

+0

La wiki está vacía. ¿Alguna pista sobre dónde puedo obtener ayuda para hacer que esto funcione con PHP? – Hippyjim

21

@Joseph, ya que la versión 1.8 GhostDriver se incluye en la versión estable de PhantomJS. Aquí están las notas de la versión exacta: http://phantomjs.org/release-1.8.html. simplemente Puede iniciar el proceso de PhantomJS para escuchar en un puerto, así:

phantomjs --webdriver=PORT 

Felicitaciones a @detro y equipo PhantomJS para el trabajo impresionante!

Cuestiones relacionadas