【问题标题】:desktop application / script to interact with javascript on web application桌面应用程序/脚本与 web 应用程序上的 javascript 交互
【发布时间】:2011-06-01 19:53:54
【问题描述】:

我的工作任务是确定将我们现有的内部构建的变更管理服务(基于 Web)迁移到 Sharepoint 解决方案的可行性。我发现一切都很容易,除了我遇到的问题是,对于每个变更管理问题(数千个),可能有任意数量的附件文件与之关联,通过 javascript 调用,需要下载并放入一个文档库。

(例如 ... onClick="DownloadAttachment(XXXXX,'ProjectID=YYYY');return false">附件...)。

为了避免我手动选择它们,我一直在查看想要做类似事情的人的帖子,似乎有很多可能的解决方案,但它们通常看起来比他们需要的更复杂。

所以我想简而言之,我想问什么是解决这个问题的最佳方法,它会产生某种桌面应用程序或脚本,可以与网页交互,并让我选择和组织所有附件。 (制作一个纯粹的基于 Web 的应用程序(php、javascript、rails 等)对我来说不是一个选择,所以现在把它扔在那里)。

提前致谢。

【问题讨论】:

  • onclick="DownloadAttachment(xxxxx,'ProjectID=yyyy')... 只是为了表明我正在处理一个 javascript 方法,而不是指向所需文件的直接链接。要扩展我的问题的第一部分:我知道的项目 ID(我正在处理 3 个)和我可以生成包含所有数字的报告的单个问题 ID,然后可以在 url 中使用它来转到每个问题的页面。问题是,在这些页面中的每一个上,可能有也可能没有任意数量的带有任意数量 ID 的附件链接(javascript 下载方法)。
  • 在检查了 javascript "DownloadAttachment()" 函数之后(顺便说一句,我刚刚发现了内置的 chrome 开发工具 = 太棒了)我可以为每个附件链接组装一个 url。所以我想我需要一种方法来访问页面,检查它们的来源,如果存在下载链接,为它构建一个 URL,保存附件,然后继续下一个。

标签: java javascript web-services web-applications


【解决方案1】:
  1. 给定一个文档 ID 和项目 ID, XXXXXYYYY 分别在 你的例子,找出网址 可以从中获取文件内容 下载。你可以观察几个 浏览器中的 URL 链接并检测 你的网站的模式 应用程序使用。

  2. 使用 Selenium 之类的工具来获取 XXXXXs 和 YYYYs 的列表 您需要下载的文件。

  3. 使用 wget 编写一个 bash 脚本 将文件下载到本地并放置 在正确的文件夹中。

【讨论】:

    【解决方案2】:

    这是一次“一次性”迁移,对吧?

    1. 访问您的内部应用程序的数据库,并创建一个 SQL 查询,该查询提取显示附件名称 (XXXXX?) 和问题/项目 (YYYY?) 的行,例如:

      |file_id|issue_id|file_name           |  
      |      5|     123|Feasibility Test.xls|
      
    2. 分析 DownloadAttachment 方法并弄清楚它如何生成每次下载时调用的 URL。

    3. 启动一个脚本(我个人会选择 Python)来完成迁移工作。
    4. 编写脚本以连接和运行 SQL 查询,或者可以读取您从第 1 步手动创建的 CSV 文件。
    5. 编写脚本以使用详细信息来确定目标文件名和下载地址。
    6. 编写脚本以从给定的 URL 下载文件,并将其放置在具有正确名称的硬盘驱动器上。 (在 Python 中,您可以使用 urllib。)

    希望这能让您了解一堆按“问题”分类的文件,例如:

    issue123/Feasibility Test.xls
    issue123/Billing Invoice.doc
    issue456/Feasibility Test.xls
    

    【讨论】:

      【解决方案3】:

      谢谢大家。我能够使用 htmlunit 和 java 来遍历我制作的所有带有附件的更改项的报告,转到每一个,复制源代码,遍历它以查找下载方法的实例,并复制唯一 ID为每个附件创建一个 .xls 文件,其中包含所有项目及其附件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-20
        • 2013-03-18
        相关资源
        最近更新 更多