Java Jsoup迭代下拉并抓取动态添加的数据

时间:2015-11-20 19:08:24

标签: java drop-down-menu web-scraping jsoup

使用JSoup和Java我想通过在下拉列表中选择一个选项来获取动态添加的数据。一个更好地展示我想表达的内容的例子是http://www.bulletin.uga.edu/CoursesHome.aspx。 by前缀/主要下拉列表中的每个下拉选项都动态创建一个下拉列表,该下拉列表提供所有课程或选项,即所有课程"。选择课程时,它会动态添加所有课程信息。如果您选择所有课程,则会添加该专业的所有课程数据。 我可以获得所有列表值。到目前为止,这是我的代码。我只是不知道如何使用这些值加载所有数据并迭代所有数据。

package getInfo;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;


public class getInfo {

public static void main(String[] args){
    try{
    Document doc =    Jsoup.connect("http://www.bulletin.uga.edu/CoursesHome.aspx").get();
    org.jsoup.select.Elements links = doc.select("option");
    for(Element e: links)
    {
        //System.out.println(e);
        //System.out.println(e.text());
        System.out.println(e.attr("value"));
    }
    } catch (IOException ex){
        Logger.getLogger(getInfo.class.getName()).log(Level.SEVERE, null, ex);
    }
}
}

这将返回所有下拉列表值的列表

1 个答案:

答案 0 :(得分:1)

JSoup不是最好的选择。 JSoup主要是一个HTML解析器。虽然它提供了一些有用的方法来获取内容,但它并不是一个无头浏览器。

我建议你在这里使用Selenium。它可以轻松处理动态添加的数据。