我正在尝试在Eclipse中运行一个web scraper,使用Jsoup,可以在这个页面上获取教授的名字:yu.edu/faculty并打印出来。这是我的代码:
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 YUscraper {
public static void main(String[] args) throws IOException {
// fetches & parses HTML
String url = "http://yu.edu/faculty/";
Document document = Jsoup.connect(url).get();
// Extract data
Element content = document.getElementById("mainlist");
Elements names = content.getElementsByTag("a");
// Output data
for (Element name : names) {
System.out.println("Name: " + name.text());
}
}
}
我收到此错误:
Exception in thread "main" java.lang.NullPointerException
at YUscraper.main(YUscraper.java:18)
我相对较新,如果我遗漏了一些非常明显的东西,请原谅我。我使用了很多我已经看到的例子来达到这一点,但我仍然不明白抛出IOException是什么以及它是什么意味着发现了异常。请帮忙,谢谢!
答案 0 :(得分:0)
行Element content = document.getElementById("mainlist");
内容返回为null,因此 null.getElementsByTag 正在给出错误。看起来html没有'mainlist'的元素
答案 1 :(得分:0)
第18行
元素名称= content.getElementsByTag(“a”);
似乎从http://yu.edu/faculty/检索到的html中没有ID为“mainlist”的标记。
好像你试图访问标签main-nav而不是主列表。