0

我正在尝试使用此代码从网页中读取内容,我想读取链接、链接下方的作者姓名以及右侧的 PDF 或 HTML 链接到我的数据库或使用 Java 的某些 doc 文件。

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 HTMLParserExample1 {

   public static void main(String[] args) {

      Document doc;
      try {
         // need http protocol
         doc = Jsoup.connect("http://scholar.google.com/scholar?  l=en&q=visualization&btnG=&as_sdt=1%2C4&as_sdtp=").userAgent("Chrome").get();

         Element content = doc.getElementById("content");
         Elements links = content.getElementsByTag("a");
         for (Element link : links) {
            String linkHref = link.attr("href");
            String linkText = link.text();
            System.out.println("\nLinHREF: "+linkHref);
            System.out.println("linktext: "+linkText);
         }


      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

以上是我的代码,之前它给了我 403 错误,但是当我输入 useragent("Mozilla") 时,它给了我空指针异常。

Exception in thread "main" java.lang.NullPointerException
        at HTMLParserExample1.main(HTMLParserExample1.java:20)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)

请帮忙。

4

1 回答 1

1

好吧,如果我从 url http://scholar.google.com/scholar?l=en&q=visualization&btnG=&as_sdt=1%2C4&as_sdtp= 中删除空格就可以了。我强烈建议使用谷歌 API 进行网络搜索,而不是直接谷歌解析。 这里有一些关于 Gdata API的信息。

于 2013-10-30T09:43:03.937 回答