关键词的jsoup搜索元素

时间:2017-12-27 17:55:28

标签: java jsoup

我能够使用Jsoup轮询我在Java中所需的所有数据并将其存储为元素并将其命名为“links”。我想扫描状态,例如加利福尼亚州,内华达州和德克萨斯州,并且每当其中一个列在轮询数据中时,将计数增加一。我知道我想为每个状态创建一个int,在一个带有+ =的while语句中抛出它并创建50个这样的语句来扫描每个状态但是我该怎么做呢?也有办法避免键入该语句50次?

链接的代码是

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设置路径,它将无法运行。我的问题不是关于我发布的代码,只是为了对程序有一个总体概念。

1 个答案:

答案 0 :(得分:0)

我猜你是编程的新手(在Java中)。做你想做的事情的一种方式是这样的:

1)创建一个类StateCount,如下所示:

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

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

2)在你的代码中

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

当然,您也可以使用HashMap数据结构来存储计数。这取决于你真正想要做些什么。