Web scraping interpretando javascript

W0rd

¿Conocéis alguna librería que tenga la facilidad de jquery y que interprete javascript? , por ejemplo para java me gustó bastante https://jsoup.org/, la idea es que simule a la hora de parsear el html lo más parecido a un navegador. Una opción sería una extensión de navegador (chrome, firefox ... ), pero prefiero tener una aplicación autónoma y sin interfaz gráfica.

MartiONE

Para que lenguaje?

Aparte que yo sepa jsoup no parsea javascript.

1 respuesta
W0rd

#2 Con jsoup me refiero al tema de parsear html.

Por telegram me han recomendado:
Para node.js
http://phantomjs.org/ y https://slimerjs.org para scraping
cheerio https://github.com/cheeriojs/cheerio para parsear al estilo jquery

Saludos.

1 respuesta
MartiONE

#3 Pues ya lo tienes, aunque phantom ha dejado de ser desarrollado en favor del headless browser de Google.

Quizá deberías echarle un vistazo, o seguir con Phantom, lo que prefieras.

1 respuesta
W0rd

#4 Te refieres a puppeteer?
https://github.com/GoogleChrome/puppeteer

he encontrado un listado de unos cuantos para comparar.
https://github.com/dhamaniasad/HeadlessBrowsers

Por ejemplo he visto que phantom.js es compatible con varios lenguajes pero claro si lo han abandonado ... , el lenguaje en un principio me da lo mismo pero prefiero c#, java, python, aunque por lo que veo me va tocar meterme con node.js

s4suk3

alguien tiene experiencia con phanton js?

1 respuesta
Traber

#6 Yo tengo un motor de scrapping que trabaja con PhantomJS, aunque hace tiempo que no toco el proyecto, ¿por qué? ¿qué necesitas?

1 respuesta
s4suk3

#7 sirve para simular navegación por una web? ejemplo: entra en mediavida, y dale a iniciar sesión

3 respuestas
KarlosWins

.

1 respuesta
s4suk3

#9 y también puedes modificar el user agent, y cualquier header? hay forma de usarlo desde java?

1 respuesta
Traber

#8 Sep, puedes recorrer el DOM, hacer click en elementos, meter datos en un formulario... pero si quieres algo más completo y que sea más "interactivo" de cara a la web que visites, te recomiendo que uses "Selenium": http://www.seleniumhq.org/

KarlosWins

.

HeXaN

#8 Para eso no necesitas emular un navegador.

1 respuesta
s4suk3

#13 hasta ahora lo hice todo a pelo, es decir jsoup para scrapear el html y gets con userAgent, pero desde java no me imagino como poder ejecutar un evento, por ejemplo "haz scroll en la web"

1 respuesta
MartiONE

#14 Son conceptos completamente diferentes, parsear un html no tiene misterio alguno. Hacer mover la web a tu antojo tampoco, pero es algo que tienes que ir aprendiendo, las "api" para cada lenguaje y como interactua con el navegador.

1 respuesta
s4suk3

#15 pero no me interesa tener un navegador abierto, es para hacer en background

1 respuesta
MartiONE

#16 No has entendido nada. Por favor lee que es un headless browser.

1 respuesta
s4suk3

#17 parece que tu no entiendes mi pregunta, dices que aprenda a usar la api del webview de android para hacer eventos de scroll? no quiero usar un webview.
Headless browsers are used for:
Scraping web sites for data.
Automating interaction of web pages.

que es lo que no entiendo?

1 respuesta
MartiONE

#18 Puedes repetir la pregunta?

1 respuesta
s4suk3

#19 quiero simularr navegación web desde un servicio de android, el problema de hacerlo a pelo es que no hay forma de crear eventos para que parezca más real la visita , por eso pregunto si con phantom lo podría hacer

1 respuesta
MartiONE

#20 Quizá esto es lo que quieres? http://selendroid.io/

1 respuesta
s4suk3

#21 le eche un ojo pero parece que solo está pensando para hacer tests

1 respuesta
MartiONE

#22 Es la función principal de la automatización de web browsers, los tests, pero la misma tecnología está siendo usada para muchas otras cosas. De hecho yo uso selenium+phatom muchas veces para scrapear.

Quizá si eres un poco mas especifico de por que quieres simular una navegación web desde android podemos ayudarte.

1 respuesta
s4suk3

#23 mentir a google analitics para que se piense que es una visita real

Usuarios habituales

  • s4suk3
  • MartiONE
  • HeXaN
  • KarlosWins
  • Traber
  • W0rd