我正在做一个小型解析器来获取有关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。
不管吗?
答案 0 :(得分:0)
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");
您可以获取元素只输入元素名称。不喜欢"元素"