【问题标题】:how to download the image which will be displayed after a cache image on the web page?如何下载将在网页上缓存图像后显示的图像?
【发布时间】:2011-06-29 05:32:27
【问题描述】:

我想从卡通网站下载一张图片。我的应用是 WinForm,而不是 WebForm。

假设a.html上有一张图片。

通常,当我单击上一页并被重定向到此页时, 将有一个图像:“图像正在加载”,比如说 A.jpg,在同一个块中。

5 秒后,将显示真实的,比如 B.jpg。

所以我得到的只是缓存图像,而不是我想要的 B.jpg。

那么.....我应该怎么做呢?

提前致谢。

ps:我已经发布了这个问题超过 48 小时,并且只得到了一些不能解决我的问题的答案。 我想知道为什么只有2个人发布了他们的答案? 我的问题不清楚吗? 如果有,请告诉我。

谢谢

【问题讨论】:

  • 您是否拥有内容所有者的权限才能下载这些图片?您所描述的“缓存”图像很容易被用来阻止您正在尝试做的事情。
  • @Chad,是的,它是一个完全免费的卡通网站。每个人都可以在那里,看看他们最喜欢的卡通片。我认为为什么使用缓存图像的目的是为了给我们提供更多用户友好的性能。因为如果点击下一页查看下一张图片,在加载图片时,如果没有任何反应,用户可能会认为网站没有响应他/她的请求。那么你对我的问题有什么解决方案?谢谢:)

标签: c# image caching download html-parsing


【解决方案1】:

编辑:由于我完全误解了这个问题,因此删除了原始答案。

您要做的基本上是 HTML 抓取:使用页面的实际 html 来发现文件的托管位置并下载它们。因为我不确定是否有任何法律原因会阻止您以这种方式下载图像文件,所以我将概述一种方法来执行此操作,而不提供任何工作示例或任何东西。换句话说,使用这些信息需要您自担风险。

在 Firefox 中使用 fiddler2,您应该能够找到下载其中一张图像的域和完整 url。基本上只需启动 fiddler2,在 Firefox 中导航到该站点,然后查找已下载的最大文件。这将告诉您图像的确切来源。

接下来,查看您正在查看的页面的 HTML 源代码。这个特定站点的工作方式看起来像是在 swf 或其他内容中隐藏了上一个/下一个下载,但您可以在页面的 javascript 中找到 url。查找名为 picArr 的 javascript 数组。

要使用 WinForms 应用程序下载这些,我会使用 WebRequest 对象。为每个图像 url 创建一个请求并将响应保存到磁盘。

【讨论】:

  • 您好 rsbarro,感谢您的回复。但我正在开发一个 WinForm 应用程序,而不是一个 WebForm。我想下载图像而不是如何在网页上显示微调器。所以你有想法吗?在此先感谢:)
  • 哦,我从最初的问题中认为您试图在网页上显示图像。我的错。所以你真正想做的是编写一个 WinForms 应用程序来自动从卡通网站收集图像,对吧?
  • @rsbarro,是的!那么你有什么想法吗?
  • 你能在这里列出网站,让我看看发生了什么吗?
  • @rsbarro,当然! narutom.com/comic/11624.html尝试点击下一页查看缓存图片和卡通图片是什么。我期待您的解决方案:)
猜你喜欢
  • 2015-10-08
  • 2014-06-10
  • 2013-08-09
  • 2011-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
  • 2018-04-23
相关资源
最近更新 更多