使用jsoup从站点获取数据

时间:2014-07-16 09:53:39

标签: java html xml-parsing jsoup

我正在尝试使用以下代码从网站获取数据

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class test {
  public static void main(String[] args) throws IOException {       
    Document d=Jsoup.connect("some site URL")
      .userAgent("Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36").timeout(100000).get();
    Elements e = d.select("span[class=lrg bold]");
    for (Element element : e) {
      System.out.println("aaaaaaaa"+element.text());
    }
  }
}

这样我想从网站上获取价格信息。但问题是一个产品的价格有两个规则。有时价格<del class="grey">或价格可用<span class="bld lrg red">。如果价格在两个规则中都可用,我想只拿第一个。如果第一个不可用,那么我想要第二个价格值。我怎样才能在元素中给出条件。

1 个答案:

答案 0 :(得分:0)

我不认为您可以将所需的locig放入一个css选择器中。但是,要完成你需要的东西应该很容易:

Elements e = d.select("del.grey");
if (e.size() == 0){
    e = d.select("span.lrg.bold");
}

//do stuff with e

注意,我更改了选择器以使用正确的类名语法。