简体   繁体   中英

“Exception in thread ”main“ java.Lang.NullPointerException” Error

I am trying to run a web scraper in Eclipse that, using Jsoup, that can take the names of the professors on this page: yu.edu/faculty and print them out. This is my code:

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());
        }
    }

}

I am getting this error:

Exception in thread "main" java.lang.NullPointerException
at YUscraper.main(YUscraper.java:18)

I am relatively new to this so pardon me if I am missing something really evident. I used many examples I have seen to get to this point, but I still don't understand what throws IOException is for and what it means that an exception was found. Please help, thanks!

Line Element content = document.getElementById("mainlist");

content is returned as null, so null.getElementsByTag is giving the error .. Looks like html doesn't have element by 'mainlist'

Line 18 is

Elements names = content.getElementsByTag("a");

Seems like there is no tag with id "mainlist" in the html retrieved from http://yu.edu/faculty/ .

Seems like you were trying to access tag main-nav instead of mainlist.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM