【问题标题】:How to programmatically download image from website?如何以编程方式从网站下载图像?
【发布时间】:2010-04-14 09:03:56
【问题描述】:

我需要从网站下载图片,我有登录名和密码,但是如果我只是使用 URL 下载图片,会抛出异常:会话中没有值。

我想我需要先登录网站才能以编程方式下载图像。

你有什么解决办法吗?提前致谢!

【问题讨论】:

    标签: java http image authentication download


    【解决方案1】:

    在简单的情况下,您可以使用带有 URL 的 URLConnection 并将内容向下传输。更一般地说,我强烈建议您使用Apache HttpClient,因为您需要进行身份验证并可能接收cookie并将其发送到服务器。阅读有关AuthenticationMethods 的用户指南,尤其是Get

    【讨论】:

    • 来自hc.apache.orgHttpComponents Client 是 Commons HttpClient 3.x 的继承者和替代品。强烈建议 Commons HttpClient 的用户升级。 ;)
    【解决方案2】:

    使用HTTP Client 库来编写用于内容访问的蜘蛛。

    如果您想坚持使用 Java,我建议记录用于登录和内容访问的 HTTP 流量,然后使用库重建通信。

    还有其他库也适用于其他语言,例如 Perl:LWP。

    【讨论】:

      【解决方案3】:

      尽管 java.net 包提供了通过 HTTP 访问资源的基本功能,但它并没有提供许多应用程序所需的全部灵活性或功能。 HttpClient 旨在通过提供一个高效、最新且功能丰富的包来实现最新 HTTP 标准和建议的客户端来填补这一空白。 HttpClient 专为扩展而设计,同时为基本 HTTP 协议提供强大的支持,任何构建 HTTP 感知客户端应用程序(例如 Web 浏览器、Web 服务客户端或利用或扩展 HTTP 协议进行分布式通信的系统)的人都可能会感兴趣。

      HTTPClient

      HTTPClient Authentication

      【讨论】:

        【解决方案4】:

        我想提一下HtmlUnit。它是一个带有 Javascript for Java 的无头浏览器。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-17
          • 2016-07-26
          • 1970-01-01
          • 2014-02-01
          相关资源
          最近更新 更多