2016-08-19 4 views
0

Ich arbeite an Android. Ich möchte Kommentare von einer Webseite mit jsoup Bibliothek extrahieren. Ich mache das auf diese Weise. Aber konnte das nicht tun. Kann jemand helfen?Mit Jsoup konnte ich keine Kommentare von der URL finden.

public void fun() { 
     Document doc = null; 
     try { 
      doc = Jsoup.connect("http://tribune.com.pk/story/1164751/federal-govt-dodged-chinese-govt-cpec/").timeout(10 * 1000).get(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     Elements pa = doc.getElementsByClass("span-12 last"); 
     int count = 1; 
     for (Element iter : pa) { 
      System.out.println(iter.text()); 
      count = count + 1; 
     } 
    } 
+0

Warum hat es nicht funktioniert, was war das Problem? – Calum

+0

@Calum Es ist nicht die genaue 'Klasse' zu ​​finden, denke ich. Nichts passiert. Programm schließt sich. – waqas

Antwort

0

Sie haben 2 Ausgaben hier:

  1. Ihr Programm wird geschlossen, da der Server erwartet, dass er eine userAgent Zeichenfolge erhält und Ihnen einezurückgibt.
  2. Die Kommentare befinden sich unter der Klasse "li-comment".

Dieser Code funktioniert für mich:

Document doc = null; 
try { 
     doc = Jsoup.connect("http://tribune.com.pk/story/1164751/federal-govt-dodged-chinese-govt-cpec/").timeout(10 * 1000) 
       .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0") 
       .get(); 
} catch (IOException e) { 
     e.printStackTrace(); 
} 
Elements el = doc.getElementsByClass("li-comment"); 
for (Element e : el) { 
    System.out.println(e.text()); 
    System.out.println("-----------------"); 
} 

Sie sollten auch den Fall behandeln, die Li-Kommentar emtpy ist oder existiert nicht im Fall, dass es keine Kommentare auf der Seite.

+0

As Ich benutze Android. Es ist also kein 'userAgent()' notwendig. Recht? Die zweite Sache ist: Ich sah den Quellcode ('ctrl + u') von' http: // tribune.com.pk/story/1164751/föderal-govt-dodged-chinese-govt-cpec/'aber der Kommentar ist in die Klasse "span-12 last". Es sollte den Text zurückgeben. Ist es nicht? – waqas

+0

Nun, der Code, den Sie gepostet haben, verwendet nicht den userAgent, sucht nach der Klasse span-12, aber es funktioniert auch nicht, oder? Du kannst es auf deine Art machen, aber meine Arbeit ... – TDG

+0

Okay, mein Lieber. Vielen Dank – waqas

0

auf den Knopf klicken i benutzten ..

public void FetchData (Blick v) {

Toast.makeText(getApplicationContext(), 
      "Data is fetching from The Hindu wait some time ", 
      Toast.LENGTH_LONG).show(); 
    new Thread(new Runnable() { 

     @Override 
     public void run() { 
      try { 

       // get the Document object from the site. Enter the link of 
       // site you want to fetch 
       /* 
       * Document document = Jsoup.connect(
       * "http://javalanguageprogramming.blogspot.in/") .get(); 
       */ 
       Document document = Jsoup.connect(
         "http://www.thehindu.com/").get(); 
       title = document.text().toString(); 

       // Get the title of blog using title tag 
       /* title = document.select("h1.title").text().toString(); */ 

       // set the title of text view 

       // Get all the elements with h3 tag and has attribute 
       // a[href] 
       /* 
       * Elements elements = document.select("div.post-outer") 
       * .select("h3").select("a[href]"); int length = 
       * elements.size(); 
       */ 
       Elements elements = document.select("div.fltrt") 
         .select("h3").select("a[href]"); 
       int length = elements.size(); 

       for (int i = 0; i < length; i++) { 
        // store each post heading in the string 
        posts += elements.get(i).text(); 

       } 

       // Run this on ui thread because another thread cannot touch 
       // the views of main thread 
       runOnUiThread(new Runnable() { 

        @Override 
        public void run() { 

         // set both the text views 
         titleText.setText(title); 
         postText.setText(posts); 

        } 
       }); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    }).start(); 

} 
+1

Ich spreche über diesen Link Liebe 'http: // tribune.com.pk/story/1164751/Bundes-Govt-ausgewichen-Chinesisch-Govt-Cpec /' – waqas

+0

ok..Hope bekommen Sie die Antwort ... –

Verwandte Themen