0

大家好,我正在尝试从 ipaper 中的 swf 链接下载文档

请指导我如何下载这本书这是我想要转换为 pdf 或 word 并保存的书的链接 http://en-gage.kaplan.co.uk/LMS/content/live_content_v2/acca/ Exam_kits/2014-15/p6_fa2014/iPaper.swf 您在这方面的友好指导将不胜感激。问候, Muneeb

4

1 回答 1

0

首先,您在浏览器中使用网络捕获(在开发人员/工具中)打开这本书。您应该在不同位置打开许多页面,无论是否缩放,然后查看捕获的数据。
您会看到,对于您打开的每个新页面,浏览器都会要求一个新文件(或多个文件)。
这意味着每个页面都有一个文件,并且您的浏览器正在使用该文件创建页面的图像。(通常一页有一个文件,它是某种格式的图片,但我遇到了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。

于 2016-07-05T08:00:45.347 回答