使用jsoup解析HTML并未检索预期结果

时间:2014-07-20 21:22:40

标签: java jsoup

我正在做一个小型解析器来获取有关CDC网页中疾病的一些数据。我使用jsoup,除了这一点,一切似乎都正常。

我已经解析了四个示例网址,以获取指向"部分"的链接。包含我想要的数据(见代码)。

如果您看到每个页面的代码,您将检查这些链接是否存在。

获取此链接(内部链接)并尝试检索"元素"具有此值的对象我发现它在四个页面中的两个页面中起作用,我不知道原因。

这是我的代码:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class MainJSoupTest {

public MainJSoupTest() {
    try {
        test("http://www.cdc.gov/HAI/organisms/bCepacia.html", "#a3");
        test("http://www.cdc.gov/meningitis/bacterial.html", "#symptoms");
        test("http://www.cdc.gov/nczved/divisions/dfbmd/diseases/botulism/", "#symptoms");
        test("http://www.cdc.gov/getsmart/antibiotic-use/URI/bronchitis.html", "c");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

private void test(String url, String element) throws Exception {
    Document doc = Jsoup.connect(url).get();
    Elements els = doc.select(element);
    System.out.println(" ---- Test -----");
    System.out.println("URL: " + url);
    System.out.println("Element: " + element);
    System.out.println("Size: " + els.size());
}

public static void main(String[] args) {
    new MainJSoupTest();
}

}

输出:

  ---- Test -----
 URL: http://www.cdc.gov/HAI/organisms/bCepacia.html
 Element: #a3
 Size: 1
  ---- Test -----
  URL: http://www.cdc.gov/meningitis/bacterial.html
  Element: #symptoms
 Size: 0
  ---- Test -----
 URL: http://www.cdc.gov/nczved/divisions/dfbmd/diseases/botulism/
 Element: #symptoms
 Size: 1
 ---- Test -----
 URL: http://www.cdc.gov/getsmart/antibiotic-use/URI/bronchitis.html
 Element: c
 Size: 0

正如您所看到的,两个页面的大小为1(正如预期的那样,有一个代表内部链接的元素)。但是,其他两个返回0。

不管吗?

1 个答案:

答案 0 :(得分:0)

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");

您可以获取元素只输入元素名称。不喜欢"元素"