我想用Java做一些开发。我希望能够访问一个网站,例如
www.chipotle.com
在右上角,他们有一个您可以输入邮政编码的地方,它会为您提供所有最近的位置。该程序将只有一个空盒子供用户输入其邮政编码,它将查询实际的chipotle服务器以检索最近的位置。我该怎么做,以及我收到的数据是如何存储的?
这可能是一个关于我应该用什么方法来解析数据的后续问题。
谢谢!
答案 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,您可能会接受律师的信件......或者更糟。此外,他们可能已经在使用技术手段让人们难以享受生活。