java - java中使用jsoup提取数据

标签 java web-scraping jsoup

我正在尝试运行此代码,但我的程序中遇到“空指针异常”。我使用了 try 和 catch,但我不知道如何消除该问题。 这是代码:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.net.*;
import java.io.*;
import java.lang.NullPointerException;
public class WikiScraper  {

public static void main(String[] args) throws IOException
{
scrapeTopic("/wiki/Python");
}
public static void scrapeTopic(String url){
String html = getUrl("http://www.wikipedia.org/"+url);
Document doc = Jsoup.parse(html);

    String contentText = doc.select("#mw-content-text>p").first().text();
    System.out.println(contentText);
    System.out.println("The url was malformed!");
}
public static String getUrl(String url){
URL urlObj = null;
try{
urlObj = new URL(url);
}
catch(MalformedURLException e){
System.out.println("The url was malformed!");
return "";
}
URLConnection urlCon = null;
BufferedReader in = null;
String outputText = "";
try{
urlCon = urlObj.openConnection();
in = new BufferedReader(new InputStreamReader(urlCon.getInputStream()));
String line = "";
while((line = in.readLine()) != null){
outputText += line;
}
in.close();
}catch(IOException e){
System.out.println("There was an error connecting to the URL");
return "";
}
return outputText;
}
}

显示的错误是:

There was an error connecting to the URL
Exception in thread "main" java.lang.NullPointerException
    at hello.WikiScraper.scrapeTopic(WikiScraper.java:17)
    at hello.WikiScraper.main(WikiScraper.java:11)

最佳答案

你有

public static String getUrl(String url){
    // ...
    return "";
}

总是以空字符串结尾。

尝试

Document doc = Jsoup.connect("http://example.com/").get();

例如。

关于java - java中使用jsoup提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22618053/

相关文章:

rvest:选择并抓取特定(标题)字符串后的 html 表

java - 使用 jsoup 在 div 中选择标签的问题

java - Jsoup parseBodyFragment 排除具有 style 属性的元素显示 :none

java - 排序依据字段,最长的字符串排在前面

java - 如何从根目录加载属性文件?

html - 如何使用vba填写html自动完成字段?

java - 适用于 HTML 的 Java 最佳 DOM API

java - JTA(Bitronix)/JPA/Hibernate - 如何从 Entitymanager 获取 XAResource?

java - neo4j社区V1.9 - 如何在Spring中指定配置文件的路径?

python - 使用公共(public) GPS 数据计算速度