2016-12-07 2 views
0

Actuellement, j'utilise un connecteur JSOUP pour obtenir le titre d'une page Web. Mais si le site Web est construit en utilisant angularJs, alors le connecteur JSOUP n'est pas capable d'aller chercher le titre parce que le titre n'est pas là dans la source de la page.Comment extraire le titre de la page construite en utilisant angularJs dans java?

try { 
    Document doc=Jsoup.connect("https://support.microsoft.com/en-us/kb/948496").get(); 
    System.out.println(doc.title()); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

Comment obtenir le titre de la page s'il a été construit avec angularJs en utilisant java?

+0

Montrez-nous le code que vous avez fait pour essayer d'atteindre cet objectif –

Répondre

0

Alors, j'ai essayé d'analyser le angularjs.org en utilisant jsoup et il fonctionne très bien:

try { 
    Document doc = Jsoup.connect("https://angularjs.org/").get(); 
    Elements header = doc.select("title"); 
    System.out.println(header.html()); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

me donne "AngularJS - Superheroic JavaScript cadre MVW"

Pourriez-vous s'il vous plaît donner un exemple de un site web qui ne fonctionne pas?

EDIT: En your particular case, le titre est rempli dynamiquement. Donc, la question n'est pas "comment analyser le titre du site angulaire", mais "comment obtenir le titre créé dynamiquement". Je pense que jsoup ne le fait pas du tout. Il vous permet simplement d'accéder aux éléments dom de la source de la page Web. Ce que vous voulez faire est d'exécuter le javascript et obtenir le résultat. Je regarderais quelques utilitaires de test (comme Selenium) qui utilisent un navigateur pour rendre une page et ensuite obtenir les éléments de l'arbre dom final.

+0

Veuillez essayer l'exemple ci-dessus avec https://support.microsoft.com/fr-fr/kb/948496 –

0

Lorsque votre navigateur charge cette page - https://support.microsoft.com/en-us/kb/948496 il charge également plusieurs autres, parmi eux https://support.microsoft.com/api/content/kb/948496 qui contient votre tête avec le sélecteur .col-xl-20, de sorte que vous pouvez charger cette page avec jsoup et vous avez terminé!

+0

'https://support.microsoft.com/ en-us/kb/948496' est un exemple que j'ai donné. Mais existe-t-il un framework disponible en Java pour exécuter javascript et obtenir le titre de la page. Pour être précis, je veux que ce soit un programme générique. –

+0

Il n'y a pas de façon générique de le faire. Chaque URL doit être traitée séparément. – TDG