Qué lenguaje me conviene para trabajar con datos de un sitio web?

Iniciado por The Swash, 20 Marzo 2016, 15:30 PM

0 Miembros y 1 Visitante están viendo este tema.

The Swash

Buenas,

Tengo un proyecto donde necesito obtener información de un sitio web que no provee un API, por ende necesito obtener la información mediante peticiones y parsear los datos constantemente.

El sitio básicamente es un mercado en línea, básicamente la interacción sería algo así: App: Web dame los items en venta según X criterios.
Web: item1, item2, ..., itemN
App: selecciona los que le convienen, pujar por X items.

Si se dan cuenta la aplicación estará constantemente haciendo cosas similares a lo anterior y necesito un lenguaje que cumpla con lo siguiente:


  • Buen manejo de concurrencia
  • Buen manejo de datos
  • Soporte de librerías para web requests
  • Tiempo moderado de aprendizaje y desarrollo
  • De preferencia un lenguaje moderno


Me gustaría un lenguaje como Scala, Go o D, pero me gustaría enfatizar en que cada milisegundo es realmente importante para mi aplicación y en lo posible necesito las sugerencias respecto al lenguaje que más me convenga.

Gracias.

engel lex

#1
CitarBuen manejo de concurrencia
   Buen manejo de datos
   Soporte de librerías para web requests
   Tiempo moderado de aprendizaje y desarrollo
   De preferencia un lenguaje moderno

acabaste de describir el 80% de los lenguajes

-por simplicidad te recomiendo python, tiene librerias muy buenas para web (mechanize, urlib, entre otras) y es muy simple
-por potencia te recomiendo c++, puede que sea un rustico con el tratamiento de strings, pero una vez haces lo que necesitas para analizar las strings, es sumamente potente y puedes facilmente hacerlo multihilo (se llaman threads, podrías lanzar varias revisiones simultaneas sin esperar a otra por terminar) a demás a pesar de nacer en los 80's, es uno de los lenguajes más usados hoy dia por su potencia (no necesariamente un lenguaje porque sea viejo es malo... en este caso es un cuchillo que hemos afilado durante más de 30 años)
-por practicidad te recomiendo javascript, a pesar de ser un lenguaje de navegador, su naturaleza de funcionamiento es orientada a web, así que es uno de los más simples para ello, a punta de peticiones ajax puedes hacer maravillas... si quieres usarlo fuera del navegador tienes nodejs que es un lenguaje interpretado aún más potente y basado en javascript
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

#!drvy

Citar-por practicidad te recomiendo javascript, a pesar de ser un lenguaje de navegador, su naturaleza de funcionamiento es orientada a web, así que es uno de los más simples para ello, a punta de peticiones ajax puedes hacer maravillas... si quieres usarlo fuera del navegador tienes nodejs que es un lenguaje interpretado aún más potente y basado en javascript

Aclaro: NodeJS es javascript. Node es simplemente un motor basado en el motor javascript de Chrome, que interpreta JS a nivel servidor.

Saludos

engel lex

Cita de: #!drvy en 20 Marzo 2016, 19:58 PM
Aclaro: NodeJS es javascript. Node es simplemente un motor basado en el motor javascript de Chrome, que interpreta JS a nivel servidor.

Saludos

gracias por la aclaración! pensé que era basado  :-X
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

manute_powa

Buenas,

Echale un vistazo a CasperJS (PhamtomJS), es una pasada y puedes sacar datos de una web sin tener API ni nada. Que me corrijan si me equivoco, ya que no lo he usado mucho, pero puedes hacer Scraping Web y recopilar información.

Un saludo

The Swash

Muchas gracias a todos por responder, es cierto que la mayoría de los lenguajes ofrecen eso, la mayoría claro hablamos de lenguajes interpretados o semicompilados. Al parecer me tocará tomar decisiones en base a lo que desee sacrificar, tiempo por rendimiento o viceversa, aunque realmente quería aprovechar para hacer este proyecto en un lenguaje nuevo y moderno como Go, Scala, o D.

Muchas gracias a todos por sus sugerencias y sigo abierto a ellas.

[u]nsigned

Si el sitio no ofrece API vas a atener que hacer Data Mining. Yo para esot simepre uso SimpleHtmlDom para PHP.

http://simplehtmldom.sourceforge.net/

Pero en todo caso te recomiendo que uses el lenguaje que mejor manejas, busca como hacer data mining en ese lenguaje y listo.

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!