2017-12-27 2191 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数据结构来存储计数。这取决于你实际想要处理的数量。