如何向网站发送查询并解析结果?

时间:2011-05-18 23:05:24

标签: java web-services

我想用Java做一些开发。我希望能够访问一个网站,例如

www.chipotle.com

在右上角,他们有一个您可以输入邮政编码的地方,它会为您提供所有最近的位置。该程序将只有一个空盒子供用户输入其邮政编码,它将查询实际的chipotle服务器以检索最近的位置。我该怎么做,以及我收到的数据是如何存储的?

这可能是一个关于我应该用什么方法来解析数据的后续问题。

谢谢!

2 个答案:

答案 0 :(得分:3)

首先,您需要知道执行查询所需的参数以及应该提交这些参数的URL(表单的action属性)。这样,您的应用程序将不得不使用您自己的参数(可能只有邮政编码)对URL发出HTTP请求。最后解析答案。

这可以使用标准Java API类完成,但它不会非常强大。更好的解决方案是HttpClient。以下是一些examples

答案 1 :(得分:3)

  

这可能是一个关于我应该用什么方法来解析数据的后续问题。

这在很大程度上取决于网站实际返回的内容。

  • 如果它返回静态HTML,则应使用常规(严格)或允许的HTML解析器。

  • 如果它返回动态HTML(即带有嵌入式Javascript的HTML),则可能需要使用评估Javascript的内容作为内容提取过程的一部分。

  • 可能还有一个专为程序(如您的)设计的Web API。这样的API通常会将结果作为XML或JSON返回,这样您就不必从HTML文档中删除结果。


在您继续之前,您应该查看该网站的服务条款。他们对你提出的建议做了什么吗?

很多网站都不希望人们刮掉他们的内容或为他们的服务提供包装。例如,如果他们从他们网站上显示的广告中获得收入,那么您提议做的事情可能会导致访问者转移到他们的网站,从而导致潜在或实际收入的损失。

如果您不尊重网站的ToS,您可能会接受律师的信件......或者更糟。此外,他们可能已经在使用技术手段让人们难以享受生活。