【问题标题】:Save Browser Cached Image from <img> tag without using src attribute从 <img> 标签保存浏览器缓存图像而不使用 src 属性
【发布时间】:2016-07-13 10:30:43
【问题描述】:

假设你有一个网站,

example.com

你有一些图像被调整到非常低的质量。当您单击图像时,您会转到“view_image”页面,例如

example.com/view?image=image_related_temp_code

在此页面上,图片以完整质量加载。但是,如果您通过 Chrome 开发控制台检查其 src 属性以下载/浏览该 src 链接,您会看到另一张图片以文本形式返回,这可能会禁止您使用直接/热链接下载文件。因此,这意味着您无法通过src 链接获取图像。此外,每次刷新网页时,src 都会发生变化。

我的问题:您将如何使用 Java / Jsoup / Javascript,以便您可以直接从网页或浏览器内容获取并保存缓存的图像,而无需使用 src 属性。

我尝试只使用 Jsoup。我执行了一个 Jsoup connect()get(),通过 Jsoup-Document 使用适当的类组合搜索了 &lt;img&gt; 标签。并实现了getSRC() 方法,并实现了srcToFile() 方法,它使用Files.copy() 方法来保存图像。但是,直到现在,我只能一次又一次地获得 Go Back 图像。

我无法共享网站 URL,因为它在本地托管在大学的服务器上。这可能是由于.htaccess 文件,是否可以以某种方式保存缓存的图像?

【问题讨论】:

  • 是否可以通过 Chrome Inspector 控制台进行 javascript 注入?
  • @Krishnakumar_Muraleedharan 我们可以通过 javascript 注入来做到这一点。我只是好奇。

标签: javascript java html jsoup browser-cache


【解决方案1】:

您的 HTML 包含 &lt;img src='#nothingToKnow'&gt;

在 body.onload() 中,您通过 Ajax 调用从服务器读取图像。

但是服务器必须发送base64(imagedata)。使用结果字符串将图像更改为document.getElementById("theImgId").src = 'data:image/png;base64,'+resultstring;

【讨论】:

  • 对于 javascript,我的 load.js 需要访问该 URL,让它在框架容器中加载 URL,等待大约 20 秒后,获取&lt;img&gt; 标签,获取src 它在哪里无法达到实际图像。我需要获取当前缓存的图像。
猜你喜欢
  • 2021-10-02
  • 1970-01-01
  • 2014-05-02
  • 2018-10-31
  • 1970-01-01
  • 2011-09-27
  • 2013-10-21
  • 2017-10-21
  • 1970-01-01
相关资源
最近更新 更多