【问题标题】:How do I send a query to a website and parse the results?如何向网站发送查询并解析结果?
【发布时间】:2011-08-28 11:08:20
【问题描述】:

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

www.chipotle.com

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

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

谢谢!

【问题讨论】:

    标签: java web-services


    【解决方案1】:

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

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

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

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

    • 也可能有专为程序(如您的程序)使用而设计的 Web API。这样的 API 通常会以 XML 或 JSON 的形式返回结果,这样您就不必从 HTML 文档中抓取结果。


    在继续之前,您应该查看网站的服务条款。他们有没有提到你打算做什么?

    许多网站不希望人们抓取他们的内容或为他们的服务提供包装。例如,如果他们通过在其网站上展示的广告获得收入,那么您的提议可能会导致访问者转向他们的网站,从而导致潜在或实际收入的损失。

    如果您不遵守网站的服务条款,您可能会收到律师函……甚至更糟。此外,他们可能已经在使用技术手段让人们难以获得他们的服务。

    【讨论】:

      【解决方案2】:

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

      这可以通过标准的 Java API 类来完成,但它不会很健壮。更好的解决方案是HttpClient。这里有一些examples

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-06
        • 2015-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-25
        相关资源
        最近更新 更多