Java,Jsoup,从html页面读取内容

时间:2013-10-30 08:20:15

标签: java html jsoup

我正在尝试使用此代码来读取网页中的内容, 我想阅读链接下面的链接,作者姓名以及右侧的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)

请帮忙。

1 个答案:

答案 0 :(得分:1)

如果我从网址中删除空格,它对我有用 http://scholar.google.com/scholar?l=en&q=visualization&btnG=&as_sdt=1%2C4&as_sdtp= 很好。我强烈建议您使用Google API进行直接谷歌解析的网络搜索。 Here some info about Gdata API