如何使用jsoup按顺序提取数据

时间:2015-07-24 12:23:55

标签: java html-parsing jsoup

我正在尝试使用jsoup从此链接https://orderup.com/some/phoenix/delivery/featured获取数据但是我遇到了一些问题,我的结果数据格式不正确,并且没有显示具有描述的类别。这是我的代码:

SELECT M_name,Salary,city,wife_name,age FROM managers LEFT JOIN managerEmp 
ON managers.ManagerId =managerEmp.employeId 
WHERE M_name is NULL OR employeId  IS NULL

1 个答案:

答案 0 :(得分:0)

问题是,您访问的页面的html比您预期的更灵活。例如,在某些类别中,您有一个主要类别的子文本。这被组织为h3标签的下一个兄弟。更强大且更易于阅读的方法可能是这样的:

Elements elh3s = document.select("div.menu-category h3");
for (Element elh3 : elh3s){
    System.out.println("Category: " + elh3.text());

    //get the list by stepping up and then css select the ul
    Elements ellis = elh3.parent().select("ul>li");
    for (Element elli : ellis){
        System.out.println("title: " 
            + elli.select("span.item-title").first().text());
        System.out.println("price: " 
            + elli.select("span.item-price").first().text());
        System.out.println("--");
    }
}

建议:

查看Jsoup CSS selectors。它们非常强大,因为您已经使用JSoup解析了分页,所以您可以在几乎没有性能问题的情况下完全使用它们。