2012-01-04 18 views
12

He encontrado muchos tutorials explaining how to scrape public websites that don't require authentication/login, usando node.js.¿Cómo puedo eliminar sitios que requieren autenticación usando node.js?

¿Alguien puede explicar cómo raspar sitios que requieren iniciar sesión usando node.js?

+1

¿Obtuviste esto funcionando? Por favor, publique una muestra de código si lo hizo. – codecowboy

+0

Posible duplicado de [Raspado de un sitio web que requiere autenticación usando node.js] (http://stackoverflow.com/questions/17765525/scraping-a-website-which-requires-authentication-using-node-js) – velop

Respuesta

17

Uso Mikeal's Request biblioteca, necesita habilitar las cookies de apoyo como este:

var request = request.defaults({jar: true}) 

por lo que primero debe crear un nombre de usuario en ese sitio (manualmente) y pasar el nombre de usuario y la contraseña como params al hacer el POST solicitud a ese sitio. Después de eso, el servidor responderá con una cookie que Request recordará, por lo que podrá acceder a las páginas que requieren que inicie sesión en ese sitio.

Nota: este enfoque no funciona si se usa algo como reCaptcha en la página de inicio de sesión.

+0

@ alessioalex Gracias. Voy a intentar tu sugerencia y actualizar el estado aquí. – ekanna

+1

¿Puede darme alguna muestra de cómo hacerlo? Lo estoy haciendo como dijo, pero sin suerte estoy intentando eliminar un sitio asp.net. –

+1

Sería útil si publicas una muestra de código en algún lugar (una esencia o algo así), así puedo entender lo que estás haciendo mal. Sería más rápido de esta manera. – alessioalex

5

O usando superagent:

var superagent = require('superagent') 
var agent = superagent.agent(); 

agent es entonces un navegador persistente, que se encargará de obtener y establecer las cookies, referers, etc. Sólo agent.get, agent.post() de forma normal.

+0

¿Tiene fuentes/documento de agente? No pude encontrar ninguno en http://visionmedia.github.io/superagent – velop

+1

@velop https://visionmedia.github.io/superagent/#preserving-cookies – yckart

Cuestiones relacionadas