2016-04-23 10 views
0

Ich benutze Jsoup, um Details von einer Webseite abzurufen und in eine Textdatei zu schreiben. Kann ich nur Teile davon abrufen? Im folgenden Link möchte ich zum Beispiel nur die Jobbeschreibung nehmen.Scrape nur bestimmte Details von einer Webseite

http://aldogroup.luceosolutions.com/recruit/stores/advert_details.php?id=3136&_lang=en&partner_id=139

Manchmal sind die Job-Angebote von verschiedenen Webseiten und damit das Format der HTML-Tags können variieren. Ich brauche eine Möglichkeit, nur die Jobbeschreibung abzurufen. Der folgende Code ruft alles auf der Webseite ab. Wie kann ich nur die Stellenbeschreibung bekommen? Bitte helfen Sie.

public class MainCollector { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     Document doc; 
     try { 
      doc = Jsoup.connect("http://aldogroup.luceosolutions.com/recruit/stores/advert_details.php?id=3136&_lang=en&partner_id=139").get(); 
      String title = doc.title(); 
      String body = doc.body().toString(); 
      Document convertText = Jsoup.parseBodyFragment(body); 
      String convertedText = convertText.text(); 
      System.out.println("Title:" + title); 
      System.out.println("Body:" + convertedText); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 

Antwort

1

Sie können diese nutzen -

Elements e = doc.select(".annonce > p:nth-child(5)"); 
System.out.println(e.text()); 

das Recht erhalten CSS selector Sie Ihren Browser-Entwickler-Tools öffnen kann (durch Drücken der Taste F12) und dann den Inspektor Werkzeug der Wahl.
Sie sollen auch die user agent Zeichenfolge in der Anfrage hinzugefügt, so dass Sie die exect gleiche Seite sowohl von Ihrem Browser und Ihr Programm bekommen -

doc = Jsoup.connect("http://aldogroup.luceosolutions.com/recruit/stores/advert_details.php?id=3136&_lang=en&partner_id=139") 
       .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0") 
       .get(); 
+0

Für diese Seite: https://sjobs.brassring.com/TGWebHost /jobdetails.aspx?jobId=88557&PartnerId=25592&SiteId=5175&codes=INT-INDEED Ich möchte nur den Inhalt im Div-Tag "PrimaryContentBlock" erhalten. Wie spezifiziert man das im Code? –

+1

Nun, um den Inhalt dieses spezifischen Tags zu erhalten, können Sie 'Elements e = doc.select (" # PrimaryContentBlock ");' – TDG