2017-12-27 2 views
-2

Ich konnte alle Daten, die ich in Java benötigte, mit Jsoup abfragen und als Elemente speichern und nannte diese "Links". Ich möchte das für Bundesstaaten wie Kalifornien, Nevada und Texas scannen und die Zählung jedes Mal um Eins erhöhen, wenn einer von ihnen in den abgefragten Daten aufgeführt ist. Ich weiß, dass ich für jeden Zustand ein int ketten möchte, wirf das in eine while-Anweisung mit einem + = und erstelle 50 dieser Anweisungen, um nach jedem Zustand zu suchen, aber wie würde ich darüber gehen? gibt es auch eine Möglichkeit, diese Anweisung 50 Mal zu tippen?jsoup Suchelemente für Schlüsselwörter

Der Code für die Links ist

try { 
    doc = Jsoup.connect("https://www.cinemark.com/full-theatre-list").get(); 

    String title = doc.title(); 
    System.out.println("title : " + title); 

    Elements links = doc.select("a[href]"); 
} 

Der Code i Funktionen perfekt geschrieben und wird mir, was ich will, so dass ich denke, meine Frage ist, wie ich geschaffen, um i die Elemente verweisen und scannen sie nach Schlüsselwörtern .

Bitte beachten Sie, dass dies nur ein Teil des Codes ist, so dass es nicht ausgeführt wird, ohne einen Pfad für jsoup einzurichten. Meine Frage betrifft nicht den Code, den ich gepostet habe, sondern nur einen Überblick über das Programm geben soll.

+0

Willkommen bei SO. Ihre Frage muss verbessert werden. Zum Beispiel würde es helfen, wenn Sie Ihre verwendeten Datenstrukturen beschreiben. Versuchen Sie auch, etwas Code oder zumindest Pseudocode zu entwickeln und stellen Sie spezifische Fragen dazu. Daher ist deine Frage zu allgemein. – luksch

+0

Ich weiß nicht genau, wie ich das machen soll. Wenn ich einen Screenshot posten kann, können Sie mir erklären, was ich für die Zukunft verwenden würde? – vic

+0

Keine Screenshots bitte. Ein Anfang wäre, den Code, den Sie geschrieben haben, um die "Links" zu sammeln – luksch

Antwort

0

Ich vermute, Sie sind ziemlich neu in der Programmierung (in Java). Eine Möglichkeit, zu tun, was Sie wollen, zu tun, sieht wie folgt aus:

1) Erstellen Sie eine Klasse StateCount wie folgt aus:

private class StateCounter { 
    public String name = ""; 
    public int count = 0; 

    public StateCounter(String name) { 
     super(); 
     this.name = name; 
     this.count = 0; 
    } 
} 

2) im Code

//create StateCounter instances in a list 
List<StateCounter> statecounters = new ArrayList<StateCounter>(); 

statecounters.add(new StateCounter("Texas")); 
statecounters.add(new StateCounter("Nevada")); 
... 

//when you have the links 

for (Element link: links){ 
    for (StateCounter sc : statecounters){ 
     if (link.getElementsByAttributeValueContaining​("href", sc.name)){ 
      sc.count++; 
     } 
    } 
} 

//do whatever you need to do. 

Natürlich können Sie auch könnte eine HashMap-Datenstruktur verwenden, um die Zählungen zu speichern. Es hängt ein wenig davon ab, was du eigentlich mit den Zählungen machen willst.

Verwandte Themen