【问题标题】:How to download a Document from ipaper swf如何从 ipaper swf 下载文档
【发布时间】:2015-08-23 19:42:50
【问题描述】:
【问题讨论】:
-
你试过什么?您使用什么语言和库?如果您尝试手动而不是在软件中执行此操作,则应删除此问题并改为在superuser.com 上提问。
标签:
actionscript-3
flash
swfaddress
ipaper
【解决方案1】:
首先您在浏览器中使用网络捕获(在开发人员工具中)打开这本书。
您应该在不同位置打开许多页面,无论是否缩放
然后查看捕获的数据。
您会看到,对于您打开的每个新页面,浏览器都会要求提供一个(或多个)新文件。
这意味着每个页面都有一个文件,并且您的浏览器正在使用该文件创建页面的图像。 (通常一页一个文件,是某种格式的图片,但我遇到过base64编码的图片和一张图片被切成四块)。
所以我们要下载并保存包含该书页面的所有文件。
现在,通常文件的地址有一个一致的模式,并且其中有一些递增的数字(正如我们在捕获的数据中看到的以下文件之间的差异),并且知道书中的页数我们可以猜测直到本书结尾的剩余地址(当然,在for循环中以编程方式下载所有文件)
我们可以在这里停下来。
但有时地址有点难以猜测,或者我们希望该过程更加自动化。
无论如何,我们希望以编程方式获取页面数量和页面的所有地址。
所以我们必须检查浏览器是如何知道这些东西的。通常,浏览器会在开头下载一些文件,其中一个包含书中的页数(可能还有它们的地址)。我们只需要检查捕获的数据并找到该文件以在我们的程序中解析它。
最后存在安全问题:
一些网站试图以一种或另一种方式保护他们的数据(通常使用 cookie 或 http 身份验证)。但是,如果您的浏览器可以访问数据,您只需要跟踪并模仿它是如何进行的。
(如果是 cookie,服务器将在某个时候以 Set-Cookie: 标头响应。可能是您必须登录才能查看这本书,因此您还必须跟踪此过程。通常是通过 post messeges 和 cookie。如果这是 http 身份验证,您会在请求标头中看到类似 Authorization: Basic 的内容。
就你而言,答案很简单:
(所有文件名都相对于主文件目录:“http://en-gage.kaplan.co.uk/LMS/content/live_content_v2/acca/exam_kits/2014-15/p6_fa2014/”)
有一个“manifest.zip”文件,其中包含“pages.xml”文件,其中包含文件的数量和指向它们的链接。我们可以看到每个页面都有一个拇指、一个小和一个大图片,所以我们只想要大的。
您只需要一个循环这些地址的程序(从 Paper/Pages/491287/Zoom.jpg 到 Paper/Pages/491968/Zoom.jpg)。
最后你可以将所有的jpg合并为pdf。