2016-05-08 7 views
0

Zuerst möchte ich Ihnen allen für die Zeit genommen hast danken im VorausWie kann ich bestimmte Zeilen einer Website mit Java und Jsoup lesen?

Weiter zu helfen, möchte ich, dass ich das schon answer lesen, darauf hinzuweisen, wenn ich Element in Google Chrome auf inspizieren Stackoverflow einfach sein wirklich zu verstehen, aber auf der Webseite aufgelistet unterhalb seiner Art chaotisch

ich möchte in der Lage sein, Informationen von Unternehmen auf dieser Webseite Schließlich http://www.manta.com/mb_51_ALL_CVZ/carlstadt_nj?pg=1

aufgeführt zu laden, dies ist mein Code zur Zeit

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

public class Main { 
public static void main(String[]args)throws Exception{ 
    String url = "http://www.manta.com/mb_51_ALL_CVZ/carlstadt_nj?pg=1"; 
    Document doc = Jsoup.connect(url).get(); 

    String address = doc.select("").text(); 
    String telephone = doc.select("").text(); 
    String description = doc.select("").text(); 
    // want to retrieve the address, the telephone number and the description of the 
    // company listen on the website that i provided 

} 
} 
+0

Was funktioniert nicht mit Ihrem Code? Bitte bearbeiten Sie Ihren Beitrag mit einer Beschreibung dessen, was schief läuft. – fractalwrench

Antwort

1

Zunächst einmal verwenden, um die User Agent Zeichenfolge, so dass die Seite, die Sie in Ihrem Programm bekommen die gleiche Sie mit Ihrem Browser zu bekommen sein -

Jsoup.connect(url) 
    .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0") 
    .get(); 

Der Selektor für die gesamte Tabelle ist ul.list-group:nth-child(4)
und der Selektor für jede Zeile ist ul.list-group:nth-child(4) > li:nth-child(X) > div:nth-child(1), wobei X eine Zahl zwischen 1 und der Anzahl der Zeilen ist.
Innerhalb jeder Reihe finden Sie leicht die Selektoren für Adresse, Telefon und so weiter mit Ihrem Browser. Zum Beispiel - die Adresse aus der ersten Zeile ist gegeben durch ul.list-group:nth-child(4) > li:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > span:nth-child(1).
Einfach durchschleifen. alle Reihen und extrahieren, was auch immer Sie benötigen.