用Java从Internet获取数据

时间:2011-08-31 07:03:52

标签: java html jnlp web

我想在java中为我的大学项目制作以下应用程序。我知道核心java。我想知道我应该为这个项目“具体”阅读什么,因为时间更短:

它将有一个接口来放置您的查询。这个字符串将作为对互联网搜索引擎的查询,并在搜索引擎的帮助下找到数据(我们看到的第一个网页(这是我此时应用程序的数据。:)) )。
我不想显示数据。我只想要HTML文件或生成的网页的源代码。它听起来像普通的逃亡界面吗?我不知道这个。

但我认为这是出于同样的目的。如果是这样的话。请指导我知道如何实施。
无论如何指定

  • 问题1:我应该阅读什么?此时任何直接帮助都不是我的意图。我想自己实现它。
  • 问题2:连接到互联网也需要一些jnlp知识。

例如。就像谷歌我们搜索的东西它向我们展示了网站的链接。我可以看到这个生成的网页的源代码。我只想让我的应用程序的这个页面继续工作。

修改: 我不想依赖谷歌或任何特定的网络服务器。我想通过我的申请来决定。
另请参阅我的问题2.

正如我发现我们应该尝试制作我的抓取工具的网站条款。那么我的申请会不违反规则。这对我很重要。

5 个答案:

答案 0 :(得分:5)

阿希什,          这是我推荐的。

  1. 从这些链接了解JSON的基础知识(Introductionlib download
  2. 然后查看Google Web搜索JSON API here
  3. 了解如何使用HttpClient库here从服务器获取数据。
  4. 现在你需要做的是,发出搜索的get请求,读取JSON响应,使用#1中的JSON lib解析响应,然后你就有了搜索结果。
  5. 大多数搜索引擎(Bing等)提供Jason / REST apis,因此您可以为其他搜索引擎执行相同操作。
  6. 注意:Jason API通常在UI端使用JavaScritps,但由于它非常容易和快速学习,我建议你这样做。您还可以探索(如果时间允许)基于XML的API。

答案 1 :(得分:4)

URL url = new URL("http://fooooo.com");
in = new BufferedReader(new InputStreamReader(url.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
  {
    System.out.println(inputLine);
  }

应该足以让你入门。

是的,请检查您是否违反了网站的使用条款。搜索引擎不喜欢你试图通过程序访问它们。

许多人(包括Google)都有专门为此目的设计的API。

答案 2 :(得分:2)

您可以使用HTMLUnit执行所需操作。它就像一个Web浏览器,但对于java。在他们的网站上查看一些例子。

答案 3 :(得分:1)

阅读Java教程中的“Working with URL's”,了解HTMLUnit,HttpClient等可用库背后的内容

答案 4 :(得分:1)

  

我不想显示数据。我只想要HTML文件或生成的网页的源代码。

您可能也不需要HTML。 Google使用此API将其搜索结果作为网络服务提供。与其他搜索引擎GIYF类似。您将搜索结果作为XML获取,这对您来说更容易解析。此外,XML不会有任何不需要的数据,如广告。