“线程中的异常”主“java.Lang.NullPointerException”错误

时间:2014-02-19 00:56:18

标签: java eclipse web-scraping jsoup

我正在尝试在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是什么以及它是什么意味着发现了异常。请帮忙,谢谢!

2 个答案:

答案 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而不是主列表。