2016-08-23 2 views
0

Je suis très nouveau à l'utilisation de jsoup et html. Je me demandais comment extraire les titres et les liens (si possible) des histoires sur la première page de google news. Voici mon code:Java - Comment extraire les titres et les liens de Google Actualités à l'aide de Jsoup?

org.jsoup.nodes.Document doc = null; 
       try { 
        doc = (org.jsoup.nodes.Document) Jsoup.connect("https://news.google.com/").get(); 
       } catch (IOException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 
       Elements titles = doc.select("titletext"); 

       System.out.println("Titles: " + titles.text()); 


       //non existent 
       for (org.jsoup.nodes.Element e: titles) { 
        System.out.println("Title: " + e.text()); 
        System.out.println("Link: " + e.attr("href")); 
       } 

Pour une raison quelconque, je pense que mon programme ne peut pas trouver titletext, puisque c'est la sortie lorsque le code est exécuté: Titles:

Je serais vraiment reconnaissant de votre aide, merci.

+0

try doc.select ("span.titletext"); – tonakai

+2

Y a-t-il une raison pour que vous n'utilisiez pas le plus facile à analyser [flux RSS] (https://news.google.com/news?output=rss)? –

Répondre

0

d'abord obtenir tous les noeuds/éléments qui commencent avec la balise html h2

Elements elem = html.select("h2"); 

Maintenant vous avez élément, il a un certain élément enfant (s) (id, href, originalhref et ainsi de suite). Vous devez récupérer ici les données dont vous avez besoin

for(Element e: elem){ 
     System.out.println(e.select("[class=titletext]").text()); 
     System.out.println(e.select("a").attr("href")); 
    }