2017-12-27 456 views
-2

我能夠使用Jsoup在Java中查詢我需要的所有數據並將其存儲爲元素並將其命名爲「鏈接」。我想掃描州,例如加利福尼亞州,內華達州和德克薩斯州,並在計數數據中列出其中一個時,將計數增加1。我知道我希望爲每個狀態創建一個int,然後將它放在帶有+ =的while語句中,並創建50個這樣的語句來掃描每個狀態,但是我會怎麼做呢?有沒有辦法避免輸入那個語句50次?jsoup關鍵詞搜索元素

的鏈接的代碼是

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]"); 
} 

我張貼的功能完好,並得到我我想要的代碼,所以我想我的問題是,如何我引用我創建的所有元素,並掃描他們的關鍵詞。

請注意,這只是代碼的一部分,所以如果不設置jsoup的路徑就不會運行。我的問題不是關於我發佈的代碼,只是爲了給出該程序的一般概念。

+0

歡迎來到SO。你的問題需要改進。例如,如果您描述使用的數據結構,它將會有所幫助。也試着想出一些代碼,或者至少僞代碼,並提出有關它的具體問題。因爲你的問題太籠統了。 – luksch

+0

我不完全確定如何做到這一點,如果我張貼屏幕截圖,你可以向我解釋我將來的用途嗎? – vic

+0

沒有截圖。首先將發佈您編寫的用於收集「鏈接」的代碼 – luksch

回答

0

我想你對編程很新穎(用Java)。做你想做什麼樣的一種方式是做看起來是這樣的:在你的代碼

//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. 

當然,你也

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

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

2):

1)創建一個類StateCount這樣可以使用HashMap數據結構來存儲計數。這取決於你實際想要處理的數量。