es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Java: Problema de HtmlUnit al recuperar el título de la página.

Este es mi primer post en StackOverflow, así que intentaré describir mi problema lo mejor posible.

Quiero crear un programa para recuperar las críticas de las páginas de TripAdvisor. Intenté hacerlo a través de la API, pero no respondieron cuando solicité la clave de API, así que mi alternativa es hacerlo con un WebCrawler.

Para ello, tengo un proyecto de Spring y utilizo HtmlUnit, una herramienta que nunca había utilizado, así que para probarla, mi primer ejercicio es recuperar el título de una página web. Por lo tanto, tengo el siguiente código implementado:

@PostConstruct
public void init() throws Exception {
TimeZone.setDefault(TimeZone.getTimeZone(“Europe/Madrid”));

getRequest.getPageName();

}

Que llama al siguiente método:

@Test
public void getPageName() throws Exception {
try (final WebClient webClient = new WebClient()) {
final HtmlPage page = webClient.getPage(“https://www.tripadvisor.com”);

    System.out.println(page.getTitleText());

}
catch (Exception e){
    System.out.println("ERROR " + e);
}

}

Cuando ejecuto el código con https://www.google.com, obtengo la respuesta “Google” como se esperaba, pero cuando lo intento con https://www.tripadvisor.com o https://www.youtube.com, obtengo un error que no puedo entender:

Caused by: net.sourceforge.htmlunit.corejs.javascript.EvaluatorException: syntax error (https://static.tacdn.com/assets/DDGchX.17d9b05f.js#1)

Hice una rápida investigación para ver qué significa el problema, encontré un par de publicaciones sobre un caso similar, pero no puedo entender cuál es la causa. ¿Está relacionado con un problema de JavaScript? ¿O un problema de permisos?

Si se requiere más información para analizar el problema, no dude en pedirla. Gracias de antemano por el tiempo dedicado de cualquier lector y disculpen si irrespeté alguna regla/protocolo de StackOverflow.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Recuperación de reseñas de TripAdvisor utilizando WebCrawler

    Descripción

    Quiero recuperar las reseñas de las páginas de TripAdvisor, pero no pude hacerlo a través de su API ya que no respondieron cuando solicité una clave de API. Entonces, decidí usar un WebCrawler en su lugar. Estoy utilizando HtmlUnit para este propósito y tengo un proyecto de Spring para lograr este objetivo.

    Sin embargo, me enfrenté a un problema cuando intenté recuperar el título de una página web utilizando el siguiente código:

        @PostConstruct
        public void init() throws Exception {
            TimeZone.setDefault(TimeZone.getTimeZone("Europe/Madrid"));
    
            getRequest.getPageName ();
    
        }
    
     @Test
     public void getPageName () throws Exception {
         try (final WebClient webClient = new WebClient ()) {
             final HtmlPage page = webClient.getPage ("https://www.tripadvisor.com");
    
             System.out.println (page.getTitleText ());
    
         }
         catch (Exception e) {
             System.out.println ("ERROR " + e);
         }
     }
    

    Este código funcionó bien cuando lo probé con Google, pero cuando intenté lo mismo con TripAdvisor o YouTube, recibí el siguiente error:

    Causado por: net.sourceforge.htmlunit.corejs.javascript.EvaluatorException: error de sintaxis (https://static.tacdn.com/assets/DDGchX.17d9b05f.js#1)
    

    Mi comprensión del problema

    Basado en mi investigación, creo que el problema podría estar relacionado con un problema de JavaScript o un problema de permisos. Pero no estoy seguro al respecto ya que no tengo mucha experiencia con HtmlUnit.

    Solicitud de asistencia

    Agradecería si alguien pudiera ayudarme a solucionar este problema para que pueda recuperar las reseñas de las páginas de TripAdvisor utilizando un WebCrawler. Por favor, háganme saber si necesitan información adicional para ayudarme a resolver este problema. Gracias.

Comments are closed.